home *** CD-ROM | disk | FTP | other *** search
/ FM Towns: Free Software Collection 6 / FM Towns Free Software Collection 6.iso / t_os / hk / bassrc / hk4anly.bas < prev    next >
BASIC Source File  |  1993-07-08  |  68KB  |  1,797 lines

  1. 10 '------------------------------------------------------------------
  2. 20 '  HK4ANLY.BAS  Copyrigit(C) T.Komura   / 家計簿システム      /
  3. 30 '                                       / Version 4           /
  4. 31 '  Version 4.0  1992.08.04-1992.09.14   / 分析プログラム      /
  5. 32 '          4.0a 1992.10.11 エンゲル係数基数を収入計から支出計に修正
  6. 100 '------------------------------------------------------------------
  7. 165 DIM CFI$(15)
  8. 170 GOSUB *CONFIGファイルチェック
  9. 190 '
  10. 193 VERN$="1.0" 'バージョンNo.
  11. 200 *初期設定:'--------------------------------------------------------
  12. 210 CMD$="CD "+PRGDRV$:SHELL CMD$
  13. 220 SCREEN@ 0 :COLOR 7,0,0,4:CLS:CONSOLE 5,17,2:MOUSE 0
  14. 230 DIM MSGD%(28000):' 音声メッセージ配列定義 プログラム先頭で定義
  15. 235 DIM  L_W$(80)
  16. 240 LOAD@ FMBDRV$+"\FMP.FMB"
  17. 250 PLAY "@30T150V4":DATX$=DATE$
  18. 260 DIM XB1(3,30),XB2(3,30),YB1(3,30),YB2(3,30),BST(3,30)
  19. 270 DIM ITEM$(20),ITEMC(20),SMOPT(10,3),MESH$(20),IMSH(15)
  20. 280 DIM MX$(20),MX#(20),DYN$(18),DYN#(18),DRM$(16),GDT#(6,31)
  21. 290 DIM GDYY(31*12),GDYM$(31*12),GDYE$(31*12)
  22. 300 INTERVAL 1                  :'プログラム先頭
  23. 310 ON INTERVAL GOSUB *時計表示 :'プログラム先頭 
  24. 320 GOSUB *ボタン座標読み取り
  25. 325 GOSUB *分析モード読み取り
  26. 330 GOSUB *メッシュデータ定義
  27. 340 'CLS:COLOR 7:PRINT int((int(((557-208+1)+7)/8)*(333-125+1)*4+8-1)/8)
  28. 350 DIM CUTN#(795),ANLS#(4598),SUBW#(664),ANLW#(13065)
  29. 370 ON ERROR GOTO *ERROR
  30. 980 '
  31. 1000 *メインルーチン:'・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・
  32. 1005 GOSUB *表紙表示
  33. 1010 MESN=18:GOSUB *SNDMSG
  34. 1015 MESN=1:GOSUB *MESDSP
  35. 1020 GOSUB *本日の日付
  36. 1030 SMODC=7:GOSUB *分析モード表示
  37. 1040 MOUSE 1,320,64,1
  38. 1100 *メイン選択
  39. 1110 IF MES2OFF=0 THEN MESN=2:GOSUB *MESDSP
  40. 1130 SWPASS=0:G=1:GOSUB *マウスボタン選択
  41. 1150 ON SWNO GOTO *S01,*S02,*S03,*S04,*S05,*S06
  42. 1160 GOTO 1100:STOP
  43. 1190 '
  44. 1200 *S01:'モード変更 --------------------------------------------------
  45. 1210  MODDEF=-1:GOTO *MODECHG
  46. 1220 *S02:'モード変更 --------------------------------------------------
  47. 1230  MODDEF=+1:GOTO *MODECHG
  48. 1250 *MODECHG
  49. 1260  G=1:B=SWNO:BST(G,B)=1:GOSUB *ボタンON_OFF表示
  50. 1265  IF SMODSEL=1 THEN MES2OFF=1:GOTO 1320
  51. 1270  SMODE=SMODE+MODDEF
  52. 1280  IF SMODE>MODEN THEN SMODE=1:GOTO 1300
  53. 1290  IF SMODE<1 THEN SMODE=MODEN:GOTO 1300
  54. 1300  ANLF=0:SMODC=7:GOSUB *分析モード表示
  55. 1310  MES2OFF=0
  56. 1320  G=1:B=SWNO:BST(G,B)=0:GOSUB *ボタンON_OFF表示
  57. 1330  GOTO *メイン選択
  58. 1340 '
  59. 1500 *S03:'モード選択 ---------------------------------------------------
  60. 1510  G=1:B=SWNO:BST(G,B)=1:GOSUB *ボタンON_OFF表示
  61. 1520  SMODSEL=1:SMODC=4:GOSUB *分析モード表示
  62. 1530  'PUT@A(88,90)-(215,172),SUBW#
  63. 1550  IF SMODE=9 THEN 1610
  64. 1560  CDTSET=0:GOSUB *分析条件設定
  65. 1570  IF ANLCAN=0 THEN 1600
  66. 1575  SMODSEL=0:SMODC=7:GOSUB *分析モード表示
  67. 1580  MES2OFF=0:GOTO 1625
  68. 1590 '
  69. 1600  GOSUB *分析結果画面消去
  70. 1605  GOSUB *分析条件表示:CDTSET=1
  71. 1610  MESN=13:GOSUB *MESDSP:MESN=16:GOSUB *SNDMSG
  72. 1620  MES2OFF=1
  73. 1625  G=1:B=3:BST(G,B)=0:GOSUB *ボタンON_OFF表示
  74. 1630  GOTO *メイン選択
  75. 1690 '
  76. 1700 *S05:'取消 ---------------------------------------------------------
  77. 1710  G=1:B=SWNO:BST(G,B)=1:GOSUB *ボタンON_OFF表示
  78. 1720  IF SMODSEL=1 THEN 1750
  79. 1730  MESN=14:GOSUB *MESDSP:MESN=12:GOSUB *SNDMSG
  80. 1740  FOR II=1 TO 5000:NEXT II:GOTO 1760
  81. 1750  GOSUB *分析条件消去:SMODSEL=0
  82. 1751  ANLF=0
  83. 1755  SMODC=7:GOSUB *分析モード表示
  84. 1760  MES2OFF=0
  85. 1770  G=1:B=SWNO:BST(G,B)=0:GOSUB *ボタンON_OFF表示
  86. 1780  GOTO *メイン選択
  87. 1790 '
  88. 1920 '
  89. 2000 *S04:'実行 --------------------------------------------------------
  90. 2010  G=1:B=4:BST(G,B)=1:GOSUB *ボタンON_OFF表示
  91. 2020  IF SMODSEL=1 THEN 2100
  92. 2030  MESN=14:GOSUB *MESDSP:MESN=12:GOSUB *SNDMSG
  93. 2040  FOR II=1 TO 5000:NEXT II:MES2OFF=0:GOTO 2470
  94. 2090 '
  95. 2100  ON SMODE GOSUB *AN01,*AN02,*AN03,*AN04,*AN05,                                              *AN06,*AN07,*AN08,*AN09
  96. 2110  IF SMODE=3 THEN 2236
  97. 2120  MESN=14:GOSUB *SNDMSG
  98. 2236  ANLF=1:SMODC=7:GOSUB *分析モード表示
  99. 2240  MES2OFF=0
  100. 2460  SMODSEL=0
  101. 2470  G=1:B=4:BST(G,B)=0:GOSUB *ボタンON_OFF表示
  102. 2480  GOTO *メイン選択
  103. 2490 '
  104. 8940 '
  105. 9000 *S06:'終了・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・
  106. 9020 G=1:B=6:BST(G,B)=1:GOSUB *ボタンON_OFF表示
  107. 9060 '
  108. 9110 MESN=9:GOSUB *MESDSP:MESN=24:GOSUB *SNDMSG
  109. 9130 INTERVAL OFF
  110. 9140 CHAIN "HK4MAIN.BAS"
  111. 9150 STOP:SYSTEM
  112. 9160 '
  113. 9900 '-------------------------------------------------------------------
  114. 9910 '    GENERAL SUB ROUTINE
  115. 9920 '-------------------------------------------------------------------
  116. 10000 *CHR1IN:'////////// 1文字入力
  117. 10010  A$=INKEY$:IF A$="" THEN 10010
  118. 10020  A=INSTR(C$,A$)
  119. 10030  IF A=0 THEN MESN=13:GOSUB *SNDMSG:GOTO 10010
  120. 10040  RETURN
  121. 10050 '
  122. 10060 '
  123. 10070 *MESDSP:'////////// メッセージ表示
  124. 10080  RESTORE *MESDAT
  125. 10090  FOR IM=1 TO MESN:READ XM,YM,CM,CB,BM,MES$:NEXT IM
  126. 10100  LOCATE 0,YM:COLOR CB,CB:PRINT SPACE$(79);
  127. 10110  LOCATE XM,YM:COLOR CM,CB:PRINT MES$;
  128. 10120  'IF BM=1 THEN PLAY "L4O4A"
  129. 10130  RETURN
  130. 10140 '
  131. 10200 *MESDAT:'////////// メッセージデータ
  132. 10205 '    XM, YN, CM, CB, BM
  133. 10210 DATA  2, 23,  5,  0,  1 :'--- 01
  134. 10215 DATA "                     - HK version 4.0 - 分析               [HKANLY.BAS L10]"
  135. 10220 DATA  2, 23,  7,  0,  0 :'--- 02
  136. 10225 DATA "分析モードを[▲][▼]ボタンで選んで[SELECT]を押してください。"
  137. 10230 DATA  2, 23,  7,  0,  0 :'--- 03
  138. 10235 DATA "●印の分析条件を設定してください。"
  139. 10240 DATA  2, 23,  4,  0,  1 :'--- 04
  140. 10245 DATA "★分析条件ファイル読み込み中 !!"
  141. 10250 DATA  2, 23,  4,  0,  1 :'--- 05
  142. 10255 DATA "★分析条件ファイル保存中 !!"
  143. 10260 DATA  2, 23,  6,  0,  1 :'--- 06
  144. 10265 DATA "この分析モードでは、指定した分析条件は無効です。"
  145. 10270 DATA  2, 23,  6,  0,  0 :'--- 07
  146. 10275 DATA "分析開始年月が分析終了年月よりも大きくなっています。 訂正してください。"
  147. 10280 DATA  2, 23,  6,  0,  0 :'--- 08
  148. 10285 DATA "分析終了年月をもう少し小さく設定してください。"
  149. 10290 DATA  2, 23,  5,  0,  1 :'--- 09
  150. 10295 DATA "       ★★★しばらくお待ちください....."
  151. 10300 DATA  2, 23,  6,  0,  0 :'--- 10
  152. 10305 DATA "この分析モードでは、指定した分析項目は無効です。分析項目を選択し直して下さい。"
  153. 10310 DATA  2, 23,  6,  0,  0 :'--- 11
  154. 10315 DATA "分析項目が指定されていません。 分析項目を選んでください。"
  155. 10320 DATA  2, 23,  7,  0,  0 :'--- 12
  156. 10325 DATA "分析条件ファイルを保存しますか? 保存する--[OK] 保存しない--[NG]"
  157. 10330 DATA  2, 23,  7,  0,  1 :'--- 13
  158. 10335 DATA "分析条件を確認して[実行]ボタンを押してください。"
  159. 10340 DATA  2, 23,  6,  0,  1 :'--- 14
  160. 10345 DATA "分析モードを選んでください。"
  161. 10350 DATA  2, 23,  6,  0,  1 :'--- 15
  162. 10355 DATA "分析開始年月の家計簿ファイルがありません。"
  163. 10360 DATA  2, 23,  6,  0,  1 :'--- 16
  164. 10365 DATA "分析終了年月の家計簿ファイルがありません。"
  165. 10370 DATA  2, 23,  4,  0,  1 :'--- 17
  166. 10375 DATA "★分析実行中!! しばらくお待ちください。"
  167. 10380 DATA  2, 23,  6,  0,  1 :'--- 18
  168. 10385 DATA "分析の結果該当するデータが有りませんでした。"
  169. 10390 DATA  2, 23,  7,  0,  1 :'--- 19
  170. 10395 DATA "分析終了! [▲前頁][▼次頁]で頁切替え。 [取消]で分析終了。"
  171. 10400 DATA  2, 23,  4,  0,  1 :'--- 20
  172. 10405 DATA "★統計演算処理実行中! しばらくお待ちください。"
  173. 10410 DATA  2, 23,  7,  0,  1 :'--- 21
  174. 10415 DATA "マウスで内容を見たい日付のグラフ(白い点)をクリックしてください。 終了:[取消]"
  175. 10990 '
  176. 11000 *SNDMSG:'  SAVE "SNDMSG.SUB",A
  177. 11005  IF SNDMF=0 THEN RETURN
  178. 11010  '・・・・・・・・・・・・・・・・・  サウンドメッセージ実行サブルーチン  1989.02.04
  179. 11020  '                   入力=MESN (メッセージNo.)
  180. 11030  '
  181. 11070  IF MESN>36 THEN *RETURN_SNDMSG
  182. 11080  RESTORE *MSGNAM
  183. 11090  FOR IMSG=1 TO MESN
  184. 11100    READ MSGD$
  185. 11110  NEXT IMSG
  186. 11120  MSGFN$=SNDDRV$+"\"+MSGD$+"_F.SND"
  187. 11130  LOAD@ MSGFN$,MSGD%
  188. 11140  PCMPLAY MSGD%
  189. 11150 *RETURN_SNDMSG :WAIT SWAIT:RETURN
  190. 11160 *MSGNAM :'////////// .SND File Name Data
  191. 11170 DATA "OHA1"   :'  1 おはよう
  192. 11180 DATA "KONN"   :'  2 こんにちわ
  193. 11190 DATA "KONBAN" :'  3 こんばんわ
  194. 11200 DATA "GOKRO1" :'  4 ごくろうさん
  195. 11210 DATA "GOKRO2" :'  5 ごくろうさま
  196. 11220 DATA "OTUKA"  :'  6 お疲れさま
  197. 11230 DATA "OMATA"  :'  7 おまたせ
  198. 11240 DATA "ARIGA2" :'  8 ありがとう
  199. 11250 DATA "RUNRUN" :'  9 るんるん
  200. 11260 DATA "DAMEDE" :' 10 だめでしょう
  201. 11270 DATA "IIDE1"  :' 11 いいですか
  202. 11280 DATA "NANISI" :' 12 なにしてるの
  203. 11290 DATA "DAMEDA" :' 13 だめだめ
  204. 11300 DATA "OWARI"  :' 14 終わりました
  205. 11310 DATA "SIBA"   :' 15 しばらくお待ち下さい
  206. 11320 DATA "YOROSI" :' 16 よろしいですか
  207. 11330 DATA "TYANTO" :' 17 ちゃんとしなさい
  208. 11340 DATA "ERANDE" :' 18 選んでください
  209. 11350 DATA "KAKNIN" :' 19 確認して下さい
  210. 11360 DATA "NYURYO" :' 20 入力してください
  211. 11370 DATA "IRA"    :' 21 いらっしゃいませ 
  212. 11380 DATA "OYASUM" :' 22 おやすみ
  213. 11390 DATA "ARIGA3" :' 23 ありがとうございました
  214. 11400 DATA "TYOTO"  :' 24 ちょっと待って
  215. 11410 DATA "OOKINA" :' 25 大きな間違い
  216. 11420 DATA "YAMETE" :' 26 やめて
  217. 11430 DATA "TIGAU"  :' 27 ちがうよ
  218. 11440 DATA "PINPON" :' 28 ぴんぽーん
  219. 11450 DATA "BUU"    :' 29 ぶー
  220. 11460 DATA "MOUII"  :' 30 もういいよう  
  221. 11470 DATA "DEKITA" :' 31 できたよー
  222. 11480 DATA "IIDE2"  :' 32 いいですか(2)
  223. 11490 DATA "YOSI"   :' 33 よしなさい
  224. 11500 DATA "OYOSI"  :' 34 およしなさい
  225. 11510 DATA "YAMENA" :' 35 やめなさい
  226. 11520 DATA "GOMEN"  :' 36 ごめん
  227. 11530 '                                    
  228. 12000 '////////// 年月日入力 & 曜日表示
  229. 12010 '                    
  230. 12015 *週分析E
  231. 12020 DATA "SUN",2,"MON",0,"TUE",0,"WED",0,"THU",0,"FRI",0,"SAT",1
  232. 12025 GOSUB *WEEKN:RESTORE 12020:FOR IW=0 TO WK:READ WKM$,CW:NEXT IW
  233. 12030 RETURN
  234. 12045 *週分析
  235. 12050 DATA "日",2,"月",0,"火",0,"水",0,"木",0,"金",0,"土",5
  236. 12060 GOSUB *WEEKN:RESTORE 12050:FOR IW=0 TO WK:READ WKM$,CW:NEXT IW
  237. 12080 RETURN
  238. 12090 '
  239. 12100 *YMDIN            '  V2.0  1991.07.21
  240. 12110 LX=XYMD:LY=YYMD:LC=CYMD:LL=4:LM$=INYR$
  241. 12120 LOCATE LX,LY:COLOR BYMD:PRINT "    年   月  日";
  242. 12130 LOCATE LX,LY:COLOR CYMD:PRINT LM$:GOSUB *LKEYIN: INYR$=LMG$
  243. 12140 LOCATE LX,LY:COLOR AYMD:PRINT LMG$
  244. 12145 YR=VAL(INYR$)
  245. 12150 LX=XYMD+7:LY=YYMD:LC=CYMD:LL=2:LM$=INMN$
  246. 12160 LOCATE LX,LY:COLOR CYMD:PRINT LM$:GOSUB *LKEYIN: INMN$=LMG$
  247. 12170 LOCATE LX,LY:COLOR AYMD:PRINT LMG$
  248. 12175 MN=VAL(INMN$):IF MN<1 OR MN>12 THEN BEEP:GOTO 12160
  249. 12180 LX=XYMD+11:LY=YYMD:LC=CYMD:LL=2:LM$=INDY$
  250. 12190 LOCATE LX,LY:COLOR CYMD:PRINT LM$:GOSUB *LKEYIN: INDY$=LMG$
  251. 12200 LOCATE LX,LY:COLOR AYMD:PRINT LMG$
  252. 12205 DY=VAL(INDY$):IF DY<1 OR DY>31 THEN BEEP:GOTO 12190
  253. 12210 RETURN
  254. 12220 '
  255. 12450 *WEEKN :'////////// 週NO.分析
  256. 12460 U=0    :'・・・・・・・・・・・・・・・・・・・・・・・・ Input; YR MN   Output; WK DN
  257. 12470 IF YR/4-INT(YR/4)=0 THEN U=1
  258. 12480 DATA 31,28,31,30,31,30,31,31,30,31,30,31
  259. 12490 DATA 31,29,31,30,31,30,31,31,30,31,30,31
  260. 12500 IF U=0 THEN RESTORE 12480 ELSE RESTORE 12490
  261. 12505 IF MN=1 THEN MDN=0:MNDN=31:GOTO 12520
  262. 12510 MDN=0:FOR IWEKN=1 TO MN-1:READ DN:MDN=MDN+DN:NEXT IWEKN
  263. 12515 READ MNDN:'当月の日数
  264. 12520 YDN#=MDN+YR*365+INT((YR+3)/4)+5+DY-1
  265. 12530 WK=(YDN#/7-INT(YDN#/7))*7
  266. 12540 RETURN
  267. 13000 '                                          1993.02.12 T.Komura
  268. 13010 *LKEYIN  :'・・・・・・・・・・・ 1 行全角文字入力サブルーチン
  269. 13020 ' v1.1a   入力 = LX,LY : 表示開始座標  出力 = LMG$ : 入力後の文字列
  270. 13030 '                LM$   : 初期文字列
  271. 13040 '                LC    : 表示文字色
  272. 13050 '                LL    : 最大文字数
  273. 13060 '
  274. 13070 LCSRCL=2:LLINCL=6
  275. 13080 '      CR   MR   ML  INS  DEL   BS  CAN
  276. 13085 LMSX=MOUSE(0):LMSY=MOUSE(1):MOUSE 5     :'v1.1a
  277. 13090 CC$=CHR$(&H0D,&H1C,&H1D,&H12,&H7F,&H08,&H18)
  278. 13100 LMG$=SPACE$(LL):LMGD$=SPACE$(LL)
  279. 13110 LA$=INKEY$:IF LA$<>"" THEN 13110
  280. 13120 LCSR=0:LCSRX=LCSR:GOSUB *LCSRDX
  281. 13130 LOCATE LX,LY:COLOR LC:PRINT LM$ '        ・・・・・・・・・・ 初期文字列記憶
  282. 13140 LINE(LX*8,LY*19+16)-((LX+LL)*8,LY*19+17),XOR,LLINCL,BF
  283. 13150 LMX$=LEFT$(LM$+SPACE$(LL),LL)
  284. 13160 GOSUB *LMREAD
  285. 13170 *IN1C:'                                  ・・・・・・・・・・ 1 文字入力
  286. 13180 LA$=INKEY$:IF LA$="" THEN 13180
  287. 13190 ALA=ASC(LA$):CLA=INSTR(CC$,LA$)
  288. 13200 IF CLA=0 THEN 13220
  289. 13210 ON CLA GOTO *CR,*MR,*ML,*INS,*DEL,*BS,*CAN
  290. 13220 IF KANF=1 THEN *KANJI
  291. 13230 IF ALA<&H20 THEN BEEP:GOTO *IN1C
  292. 13240 IF ALA>=&H20 AND ALA<&H80 THEN *ANK
  293. 13250 IF ALA>=&HA0 AND ALA<&HE0 THEN *ANK
  294. 13260 GOTO *KANJI
  295. 13270 *ANK :'                                  ・・・・・・・・・・ ANK 文字入力
  296. 13280 LOCATE LX+LCSR,LY:COLOR LC:PRINT LA$
  297. 13290 MID$(LMX$,LCSR+1,1)=LA$
  298. 13300 GOSUB *LCSRINC:GOTO *IN1C
  299. 13310 *KANJI :'                                ・・・・・・・・・・ 漢字文字入力
  300. 13320 ON KANF+1 GOTO 13330,13360
  301. 13330 KANF=1:KANW$="":KANW$=LA$
  302. 13340 IF LCSR+1>=LL THEN KANF=0:BEEP
  303. 13350 GOSUB *LCSRD:GOTO *IN1C
  304. 13360 KANF=0:KANW$=KANW$+LA$
  305. 13370 LOCATE LX+LCSR,LY:COLOR LC:PRINT KANW$
  306. 13380 MID$(LMX$,LCSR+1,2)=KANW$
  307. 13390 GOSUB *LCSR2INC:GOTO *IN1C
  308. 13400 *CR :GOSUB *LMREAD :GOSUB *LCSRDX         '////////// End
  309. 13410 LINE(LX*8,LY*19+16)-((LX+LL)*8,LY*19+17),XOR,LLINCL,BF
  310. 13415 MOUSE 0: MOUSE 1,LMSX,LMSY,1              :'v1.1a
  311. 13420 RETURN:'----------------------------------------------------------
  312. 13430 *MR :GOSUB *LCSRINC                       '////////// Right
  313. 13440 GOTO *IN1C
  314. 13450 *ML :GOSUB *LCSRDEC                       '////////// Left
  315. 13460 GOTO *IN1C
  316. 13470 *INS:GOSUB *LMREAD                       '////////// Insert
  317. 13480 IF LMGF$="2" THEN BEEP:GOTO *IN1C
  318. 13490 LMX$=LEFT$(LMG$,LCSR)+" "+MID$(LMG$,LCSR+1,LL-1-LCSR)
  319. 13500 GOSUB *LMXDSP
  320. 13510 GOTO *IN1C
  321. 13520 *DEL:GOSUB *LMREAD                       '////////// Delete
  322. 13530 IF LMGF$="2" THEN BEEP:GOTO *IN1C
  323. 13540 IF LMGF$="1" THEN 13560
  324. 13550 LMX$=LEFT$(LMG$,LCSR)+MID$(LMG$,LCSR+2,LL-1-LCSR)+" ":GOTO 13570
  325. 13560 LMX$=LEFT$(LMG$,LCSR)+MID$(LMG$,LCSR+3,LL-2-LCSR)+"  "
  326. 13570 GOSUB *LMREAD
  327. 13580 GOSUB *LMXDSP:GOTO *IN1C
  328. 13590 *BS :GOSUB *LMREAD                       '////////// BackSpace
  329. 13600 IF LCSR=0 THEN BEEP:GOTO *IN1C
  330. 13610 IF LMGF$="2" THEN BEEP:GOTO *IN1C
  331. 13620 GOSUB *LCSRDEC:GOSUB *LMREAD:LMGFX$=LMGF$
  332. 13630 LMX$=LEFT$(LMG$,LCSR)+MID$(LMG$,LCSR+2,LL-1-LCSR)+" "
  333. 13640 IF LMGFX$="2" THEN LMGFX$="0":GOSUB *LMREAD:GOTO 13620
  334. 13650 GOSUB *LMXDSP
  335. 13660 GOTO *IN1C
  336. 13670 *CAN :LMX$=SPACE$(LL)                    '////////// Clear
  337. 13680 GOSUB *LMXDSP:LCSR=0:GOSUB *LCSRD
  338. 13690 GOSUB *LMREAD:GOTO *IN1C
  339. 13700 *LMREAD:                                 '////////// Disp Char Read 
  340. 13710 LMDX=0:LMGD$=""
  341. 13720 FOR II=1 TO LL
  342. 13730   LMG=ASC(MID$(LMX$,II,1))
  343. 13740   IF (LMG>=&H80) AND (LMG<&HA0) THEN LMDK=1 ELSE LMDK=0
  344. 13750   IF LMDX=1            THEN LMD$="2":LMDX=0:GOTO 13780
  345. 13760   IF LMDK=1 AND LMDX=0 THEN LMD$="1":LMDX=1:GOTO 13780
  346. 13770   IF LMDK=0 THEN            LMD$="0":LMDX=0
  347. 13780   LMGD$=LMGD$+LMD$
  348. 13790 NEXT II:LMGF$=MID$(LMGD$,LCSR+1,1):LMG$=LMX$
  349. 13800 RETURN
  350. 13810 *LCSRD :LXC=8*(LX+LCSR) :LYC=LY*19:GOSUB 13840: '//// Csr Disp
  351. 13820 *LCSRDX:LXC=8*(LX+LCSRX):LYC=LY*19:GOSUB 13840: '//// Csr Erace
  352. 13830 LCSRX=LCSR:RETURN
  353. 13840 LINE(LXC,LYC+0)-(LXC+1,LYC+14),XOR,LCSRCL,BF:RETURN
  354. 13850 *LCSRINC :LCSR=LCSR+1:IF LCSR>=LL THEN LCSR=LL-1
  355. 13860 GOSUB *LCSRD:RETURN
  356. 13870 *LCSR2INC:LCSR=LCSR+2:IF LCSR>=LL THEN LCSR=LL-2
  357. 13880 GOSUB *LCSRD:RETURN
  358. 13890 *LCSRDEC :LCSR=LCSR-1:IF LCSR<0   THEN LCSR=0
  359. 13900 GOSUB *LCSRD:RETURN
  360. 13910 *LMXDSP:LOCATE LX,LY:COLOR LC:PRINT LMX$;:RETURN
  361. 15000 '
  362. 15010 '  SAVE"TCLOCK.sub"             :'   組み込み型 アナログ時計 V1.1
  363. 15020 '                                       1991.05 T.KOMURA 
  364. 15030 '--------------------------------------------------------------------
  365. 15040 '
  366. 15220 *時計表示:'///////////////////////////////////
  367. 15230 XCLK0=572:YCLK0=22:CLKR=16:PI=3.1415!
  368. 15240 TIMEX$=TIME$:IF DATE$<>DATX$ THEN GOSUB *本日の日付
  369. 15250 TSC$=MID$(TIMEX$,7,2):SCR=2*PI*(VAL(TSC$)/60)
  370. 15260 TMN$=MID$(TIMEX$,4,2):MNR=2*PI*(VAL(TMN$)/60)
  371. 15270 THR$=LEFT$(TIMEX$,2) :HRR=2*PI*((VAL(THR$)*60+VAL(TMN$))/720)
  372. 15280 GOSUB *短針表示
  373. 15290 GOSUB *長針表示
  374. 15300 GOSUB *秒針表示
  375. 15310 CLOCKINIT=1:DATX$=DATE$
  376. 15320 RETURN
  377. 15330 '
  378. 15340 *短針表示
  379. 15350 XHD1=XCLK0+(CLKR-8)*SIN(HRR):XHD2=XCLK0
  380. 15360 YHD1=YCLK0-(CLKR-8)*COS(HRR):YHD2=YCLK0
  381. 15370 IF CLOCKINIT=0 THEN 15400
  382. 15380 IF SCR<>0 THEN 15420
  383. 15390 LINE(XHD1X,YHD1X)-(XHD2X,YHD2X),XOR,6
  384. 15400 LINE(XHD1 ,YHD1 )-(XHD2 ,YHD2 ),XOR,6
  385. 15410 XHD1X=XHD1:YHD1X=YHD1:XHD2X=XHD2:YHD2X=YHD2
  386. 15420 RETURN
  387. 15430 *長針表示
  388. 15440 XMD1=XCLK0+(CLKR-2)*SIN(MNR):XMD2=XCLK0
  389. 15450 YMD1=YCLK0-(CLKR-2)*COS(MNR):YMD2=YCLK0
  390. 15460 IF CLOCKINIT=0 THEN 15490
  391. 15470 IF SCR<>0 THEN 15510
  392. 15480 LINE(XMD1X,YMD1X)-(XMD2X,YMD2X),XOR,7
  393. 15490 LINE(XMD1 ,YMD1 )-(XMD2 ,YMD2 ),XOR,7
  394. 15500 XMD1X=XMD1:YMD1X=YMD1:XMD2X=XMD2:YMD2X=YMD2
  395. 15510 RETURN
  396. 15520 *秒針表示
  397. 15530 XSD1=XCLK0+(CLKR)*SIN(SCR):XSD2=XCLK0:'+(CLKR-10)*SIN(SCR)
  398. 15540 YSD1=YCLK0-(CLKR)*COS(SCR):YSD2=YCLK0:'-(CLKR-10)*COS(SCR)
  399. 15550 IF CLOCKINIT=0 THEN 15570
  400. 15560 LINE(XSD1X,YSD1X)-(XSD2X,YSD2X),XOR,4
  401. 15570 LINE(XSD1 ,YSD1 )-(XSD2 ,YSD2 ),XOR,4
  402. 15580 XSD1X=XSD1:YSD1X=YSD1:XSD2X=XSD2:YSD2X=YSD2
  403. 15590 RETURN
  404. 16000 '
  405. 19000 '
  406. 19010 '//////////////////////////////////////////////////////////////
  407. 19020 *ERROR:'      エラー処理サブルーチン V1.10   1990.11.08 T.Komura
  408. 19030 '             
  409. 19040 '
  410. 19050 IF ERR=53 THEN *IOERR
  411. 19060 IF ERR=63 THEN *FILNOF
  412. 19070 IF ERR=67 THEN *DSKFUL
  413. 19080 IF ERR=71 THEN *DSKUNF 
  414. 19090 IF ERR=72 THEN *DSKOFF
  415. 19100 IF ERR=73 THEN *DSKWP
  416. 19110 ERMES$="エラー行:"+STR$(ERL)+" エラー番号:"+STR$(ERR)+" 発生"
  417. 19120 GOSUB *ERMSG
  418. 19130 STOP
  419. 19140 '////////// エラー処理
  420. 19150 *IOERR
  421. 19160 ERMES$="プリンターが準備されていません。 プリンターをセット後、"
  422. 19170 GOSUB *ERMSG:RESUME
  423. 19180 *DSKFUL
  424. 19190 ERMES$="ディスクが満杯です。 交換後、"
  425. 19200 GOSUB *ERMSG:RESUME
  426. 19210 *DSKUNF
  427. 19220 ERMES$="このディスクは使用出来ません。処理を中断します。 "
  428. 19230 GOSUB *ERMSG:RESUME
  429. 19240 *DSKOFF
  430. 19250 ERMES$="ディスク装置が準備されていません。ディスクをセット後、"
  431. 19260 GOSUB *ERMSG:RESUME
  432. 19270 *DSKWP
  433. 19280 ERMES$="ディスクが書き込み禁止になっています。解除後、"
  434. 19290 GOSUB *ERMSG:RESUME
  435. 19300 *FILNOF
  436. 19310 ERMES$="ファイルが見つかりません。ディスクを交換後、"
  437. 19320 GOSUB *ERMSG:RESUME
  438. 19330 '
  439. 19340 *ERMSG:'////////// エラーメッセージ
  440. 19345 XX=POS(0):YY=CSRLIN
  441. 19350 LOCATE 2,23:COLOR 2,0
  442. 19355 PRINT SPACE$(77);
  443. 19359 LOCATE 2,23:COLOR 2,0
  444. 19360 PRINT ERMES$;"[実行]キーを押してね!";
  445. 19370 COLOR 7,0:MESN=19:GOSUB *SNDMSG
  446. 19380 ERRA$=INKEY$:IF ERRA$="" THEN 19380
  447. 19390 IF ERRA$<>CHR$(&H0D) THEN 19380
  448. 19400 LOCATE 3,23:COLOR 6,0
  449. 19410 PRINT "エラー処理を終わります。";SPACE$(52);
  450. 19420 LOCATE XX,YY:RETURN
  451. 19430 '
  452. 19440 '
  453. 19450 '
  454. 20000 '------------------------------------------------------------------
  455. 20010 ' CUSTOM SUB ROUTINE FOR "HK4ANLY.BAS"
  456. 20020 '------------------------------------------------------------------
  457. 20100 *表紙表示
  458. 20140  LOAD@ TIFDRV$+"\HK4ANLY.TIF",(0,0)
  459. 20145  INTERVAL ON
  460. 20150  GET@A(88,90)-(215,172),SUBW#
  461. 20155  GET@A(10,90)-(628,424),ANLW#
  462. 20160  RETURN
  463. 20190 '
  464. 20200 *本日の日付
  465. 20210  TY$=LEFT$(DATE$,2) :TY=VAL(TY$)
  466. 20212  IF TY<90 THEN TY=TY+2000 ELSE TY=TY+1900
  467. 20214  TY$=RIGHT$(STR$(TY),4)
  468. 20220  TM$=MID$(DATE$,4,2):TM=VAL(TM$)
  469. 20230  TD$=RIGHT$(DATE$,2):TD=VAL(TD$)
  470. 20250  YR=TY:MN=TM:DY=TD:GOSUB *週分析:IF CW=0 THEN CW=7
  471. 20260  TYMD$=TY$+"年"+TM$+"月"+TD$+"日"+"   曜日"
  472. 20265  COLOR 7,0:LOCATE 46,1:PRINT TYMD$
  473. 20270  COLOR CW:LOCATE 61,1:PRINT WKM$
  474. 20280  RETURN
  475. 20290 '
  476. 20300 *分析年月表示
  477. 20310  SRYR$=RIGHT$(STR$(SRYR),4)
  478. 20315  NBN=4:NBA$=SRYR$:GOSUB *数字漢字変換:KYR$=NBK$
  479. 20320  SRMN$=RIGHT$(STR$(100+SRMN),2)
  480. 20325  NBN=2:NBA$=SRMN$:GOSUB *数字漢字変換:KMN$=NBK$
  481. 20350  DYMD$=KYR$+SPACE$(9)+KMN$
  482. 20360  COLOR 7,0:LOCATE 39,9+(ANLIN-1)*2:PRINT DYMD$;
  483. 20380  RETURN
  484. 20390 '
  485. 20400 *分析モード表示
  486. 20410  LOCATE 12,3:COLOR SMODC
  487. 20420  PRINT SMODE$(SMODE);
  488. 20430  ANLC$="\ANLC"+RIGHT$(STR$(SMODE+100),2)+".TIF"
  489. 20440  DRV$=LEFT$(TIFDRV$,2)
  490. 20445  IF LEN(TIFDRV$)=3 THEN DRV$=LEFT$(TIFDRV$,2):PATH$="":GOTO 20455
  491. 20450  PATH$=RIGHT$(TIFDRV$,LEN(TIFDRV$)-2)
  492. 20455  FLN$=DRV$+PATH$+ANLC$
  493. 20460  IF ANLF=1 THEN 20470
  494. 20465  LOAD@ FLN$,(88,90)
  495. 20470  RETURN
  496. 20480 '
  497. 20500 *分析結果画面消去
  498. 20510  FOR II=5 TO 21
  499. 20520    LOCATE 0,II:COLOR 7:PRINT SPACE$(79);
  500. 20530  NEXT II
  501. 20540  PUT@A(10,90)-(628,424),ANLW#
  502. 20550  RETURN
  503. 20590 '
  504. 20600 *年月変更
  505. 20610  MN=MN+MDEF
  506. 20620  IF MN<1 THEN MN=12+MN:YR=YR-1
  507. 20630  IF MN>12 THEN MN=MN-12:YR=YR+1
  508. 20640  YR=YR+YDEF
  509. 20650  IF YR<0 THEN YR=10000+YR
  510. 20660  IF YR>9999 THEN YR=YR-10000
  511. 20670  MN$=RIGHT$(STR$(100+MN),2)
  512. 20680  YR$=RIGHT$(STR$(10000+YR),4)
  513. 20690  RETURN
  514. 20695 '
  515. 20700 *分析条件枠表示
  516. 20710  GET@A(208,125)-(557,333),ANLS#
  517. 20720  LOAD@ TIFDRV$+"\HK4ANLS.TIF",(208,125)
  518. 20722  FOR II=1 TO 15:IF II>3 AND II<8 THEN C=1 ELSE C=0
  519. 20724    X=320+46*INT((II-1)/3):Y=250+17*((II-1) MOD 3)
  520. 20726    SYMBOL(X,Y),CFI$(II),.7!,.7!,C
  521. 20728  NEXT II
  522. 20730  FOR II=1 TO 3
  523. 20732    IF SMOPT(SMODE,II)=0 THEN 20738 
  524. 20734    LOCATE 28,9+(II-1)*2:COLOR 3
  525. 20736    PRINT "●";
  526. 20738  NEXT II
  527. 20740  RETURN
  528. 20750 *分析条件枠消去
  529. 20760  FOR II=1 TO 5
  530. 20762    LOCATE 28,9+II-1:PRINT SPACE$(40);
  531. 20764  NEXT II
  532. 20770  PUT@A(208,125)-(557,333),ANLS#
  533. 20785  RETURN
  534. 20790 '
  535. 20800 *分析条件読み込み
  536. 20805  MESN=4:GOSUB *MESDSP
  537. 20810  GOSUB *ANLSGET
  538. 20820  SRYR=SR1YR:SRMN=SR1MN:ANLIN=1:GOSUB *分析年月表示
  539. 20825  YRS=SRYR:MNS=SRMN
  540. 20830  SRYR=SR2YR:SRMN=SR2MN:ANLIN=2:GOSUB *分析年月表示
  541. 20835  YRE=SRYR:MNE=SRMN
  542. 20870  SX8=0:SX8X=SX8:SX$(8)=SPACE$(2):SITM=0
  543. 20890  RETURN
  544. 20895 '
  545. 20900 *分析条件保存
  546. 20905  MESN=5:GOSUB *MESDSP
  547. 20910  GOSUB *ANLSPUT
  548. 20920  RETURN
  549. 20930 '
  550. 21000 *分析条件設定
  551. 21010  GOSUB *分析条件枠表示
  552. 21020  GOSUB *分析条件読み込み
  553. 21030  MESN=3:GOSUB *MESDSP:MESN=20:GOSUB *SNDMSG
  554. 21040  G=2:GOSUB *マウスボタン選択
  555. 21050  IF SWNO>10 THEN *ANLS項目選択
  556. 21060  ON SWNO GOTO *SI01,*SI02,*SI03,*SI04,*SI05,*SI06,*SI07,*SI08,*SI09,*SI10
  557. 21070 '//////////////////////////////////////////////////////////////
  558. 21080  *SI03:YDEF=+1:MDEF= 0:GOTO 21120
  559. 21090  *SI04:YDEF=-1:MDEF= 0:GOTO 21120
  560. 21100  *SI05:YDEF= 0:MDEF=+1:GOTO 21120
  561. 21110  *SI06:YDEF= 0:MDEF=-1:GOTO 21120
  562. 21120   G=2:B=SWNO:BST(G,B)=1:GOSUB *ボタンON_OFF表示
  563. 21130   ANLIN=1:IF SMOPT(SMODE,ANLIN)=0 THEN GOSUB *SELERR:GOTO 21170
  564. 21140   YR=SR1YR:MN=SR1MN:GOSUB *年月変更:SR1YR=YR:SR1MN=MN
  565. 21150   SX$(1)=YR$:SX$(2)=MN$:YRS=YR:MNS=MN
  566. 21160   SRYR=SR1YR:SRMN=SR1MN:GOSUB *分析年月表示
  567. 21170   G=2:B=SWNO:BST(G,B)=0:GOSUB *ボタンON_OFF表示
  568. 21180   GOTO 21040
  569. 21190  *SI07:YDEF=+1:MDEF= 0:GOTO 21230
  570. 21200  *SI08:YDEF=-1:MDEF= 0:GOTO 21230
  571. 21210  *SI09:YDEF= 0:MDEF=+1:GOTO 21230
  572. 21220  *SI10:YDEF= 0:MDEF=-1:GOTO 21230
  573. 21230   G=2:B=SWNO:BST(G,B)=1:GOSUB *ボタンON_OFF表示
  574. 21240   ANLIN=2:IF SMOPT(SMODE,ANLIN)=0 THEN GOSUB *SELERR:GOTO 21280
  575. 21250   YR=SR2YR:MN=SR2MN:GOSUB *年月変更:SR2YR=YR:SR2MN=MN
  576. 21260   SX$(3)=YR$:SX$(4)=MN$:YRE=YR:MNE=MN
  577. 21270   SRYR=SR2YR:SRMN=SR2MN:GOSUB *分析年月表示
  578. 21280   G=2:B=SWNO:BST(G,B)=0:GOSUB *ボタンON_OFF表示
  579. 21290   GOTO 21040
  580. 21300  *ANLS項目選択
  581. 21310   ANLIN=3:IF SMOPT(SMODE,ANLIN)=0 THEN GOSUB *SELERR:GOTO 21370
  582. 21320   SX8=SWNO:IF SX8X=0 THEN 21340
  583. 21330   G=2:B=SX8X:BST(G,B)=0:GOSUB *ボタンON_OFF表示
  584. 21340   G=2:B=SX8 :BST(G,B)=1:GOSUB *ボタンON_OFF表示
  585. 21350   SX8X=SX8:SITM=0
  586. 21360   SX$(8)=RIGHT$(STR$(SX8-10),2):SITM=VAL(SX$(8))
  587. 21370   GOTO 21040
  588. 21380  *SELERR
  589. 21390   MESN=6:GOSUB *MESDSP:MESN=13:GOSUB *SNDMSG
  590. 21400   FOR II=1 TO 5000:NEXT II
  591. 21410   MESN=3:GOSUB *MESDSP
  592. 21420   RETURN
  593. 21430  *SI01'
  594. 21440   G=2:B=SWNO:BST(G,B)=1:GOSUB *ボタンON_OFF表示
  595. 21450   GOSUB *分析条件合理性判定
  596. 21460   IF ANLCDF=0 THEN *SIRETRY
  597. 21470   GOTO *SIEND
  598. 21540  *SIRETRY
  599. 21550   G=2:B=SWNO:BST(G,B)=0:GOSUB *ボタンON_OFF表示
  600. 21560   GOTO 21040
  601. 21570  *SI02'
  602. 21580   G=2:B=SWNO:BST(G,B)=1:GOSUB *ボタンON_OFF表示
  603. 21590   ANLCAN=1
  604. 21620   GOTO 21660
  605. 21630  *SIEND
  606. 21640   ANLCAN=0
  607. 21650   GOSUB *分析条件保存
  608. 21660   GOSUB *分析条件枠消去
  609. 21670   RETURN
  610. 21730 '
  611. 21740 *分析条件表示
  612. 21742  PUT@A(88,90)-(215,172),SUBW#
  613. 21745  IF SMOPT(SMODE,3)=0 THEN 21760
  614. 21748  LINE(88,92)-(215,108),PSET,1,BF
  615. 21750  SYMBOL(90,94),"分析項目:",.8!,.8!,7,,,&H01+&H04,2
  616. 21755  SYMBOL(158,94),ITEM$(SITM),1,.8!,3,,,&H01+&H04,2
  617. 21760  IF SMOPT(SMODE,2)=0 THEN 21780
  618. 21770  ANLYM$=SX$(1)+"."+SX$(2)+" テ "+SX$(3)+"."+SX$(4):GOTO 21790
  619. 21780  ANLYM$=SX$(1)+"."+SX$(2)+" テ "+SX$(1)+"."+SX$(2)
  620. 21790  LOCATE 47,3:COLOR 4:PRINT ANLYM$;
  621. 21800  RETURN
  622. 21810 '
  623. 21820 *分析条件消去
  624. 21825  PUT@A(88,90)-(215,172),SUBW#
  625. 21830  LOCATE 47,3:PRINT SPACE$(30)
  626. 21840  RETURN
  627. 21850 '
  628. 21860 *分析年月日更新
  629. 21870  'IF SMODE=4 THEN ANLCNT=0:RETURN
  630. 21880  YR=YRM:MN=MNM:YDEF=0:MDEF=+1
  631. 21890  GOSUB *年月変更
  632. 21900  IF (YR*12+MN)<=(YRE*12+MNE) THEN 21920
  633. 21910  ANLCNT=0:RETURN
  634. 21920  IYM$=YR$+MN$
  635. 21930  ANLCNT=1
  636. 21940  RETURN
  637. 21950 '
  638. 22000 *AN01:'//////////////////// [月間合計額推移]
  639. 22010  X0=88:Y0=128:XP=44:YP=12
  640. 22011  MESH$=CHR$(&H70,&H70,&H70,&H70,&H07,&H07,&H07,&H07)
  641. 22021  FOR II=1 TO 23 STEP 2
  642. 22022    LINE(X0,Y0+YP*II)-(X0+XP*11,Y0+YP*(II+1)+1),PSET,0,BF,MESH$
  643. 22023  NEXT II
  644. 22024  FOR II=1 TO 10
  645. 22025    LINE(X0+XP*II,Y0)-(X0+XP*II,Y0+YP*24),PSET,5,,&HAAAA
  646. 22026  NEXT II
  647. 22027  LINE(X0,Y0)-(X0+XP*11,Y0),PSET,5
  648. 22028  LINE(X0,Y0)-(X0,Y0+YP*24),PSET,5
  649. 22030  SYMBOL(40,116),"年.月",1,.6!,5
  650. 22035  SYMBOL(578,116),"[\]",1,.6!,5
  651. 22100 '-------------------- データ読み込み
  652. 22105  MESN=17:GOSUB *MESDSP:MESN=15:GOSUB *SNDMSG
  653. 22110  SCN=1:GOSUB *グラフデータ初期化
  654. 22120  IYM$=YRS$+MNS$:GDN=1
  655. 22125  GOSUB *ITM変換
  656. 22130  GOSUB *統計データ読みだし
  657. 22132  GDYM$=YRM$+"."+MNM$
  658. 22135  SYMBOL(X0-68,Y0+YP*(GDN-1)+2),GDYM$,1,.6!,7,,,,1
  659. 22140  IF FIDX=0 THEN 22160
  660. 22150    GDT#(1,GDN)=MX#(GITM)
  661. 22155    TGDT#=TGDT#+GDT#(1,GDN)
  662. 22160  GOSUB *分析年月日更新
  663. 22170  IF ANLCNT=0 THEN 22200
  664. 22180  GDN=GDN+1:GOTO 22130
  665. 22200 '-------------------- グラフ作成
  666. 22210  GDMAX=GDN
  667. 22220  GOSUB *スケール検出
  668. 22230  FOR II=0 TO 10 STEP 2
  669. 22232    SCAL$=LEFT$(STR$((SCAL#(1)/10)*II)+SPACE$(8),8)
  670. 22234    SYMBOL(X0+XP*II-6,Y0-10),SCAL$,.6!,.6!,7
  671. 22236  NEXT II
  672. 22238  MESH$=MESH$(13)
  673. 22240  FOR GDN=1 TO GDMAX
  674. 22250    XG=X0+(GDT#(1,GDN)/SCAL#(1))*XP*10
  675. 22260    LINE(X0,Y0+YP*GDN-10)-(XG,Y0+YP*GDN-1),PSET,0,BF,MESH$
  676. 22270    SYMBOL(XG,Y0+YP*GDN-10),STR$(GDT#(1,GDN)),.8!,.6!,6,,,&H02
  677. 22280  NEXT GDN
  678. 22290  LINE(216,92)-(364,108),PSET,7,BF
  679. 22300  SYMBOL(222,94),"総合計:\"+STR$(TGDT#),1,.8!,0,,,&H01
  680. 22470  GOSUB *画面フラッシュ
  681. 22480 RETURN
  682. 22490 '
  683. 22500 *AN02:'//////////////////// [月間合計額累積]
  684. 22510  X0=88:Y0=372:XP=20:YP=-24
  685. 22520  LINE(X0,Y0)-(X0+XP*24,Y0),PSET,5
  686. 22521  LINE(X0-12,Y0+8)-(X0+XP*24-12,Y0+8),PSET,5
  687. 22525  LINE(X0,Y0)-(X0,Y0+YP*10),PSET,5
  688. 22526  LINE(X0-12,Y0+8)-(X0-12,Y0+YP*10+8),PSET,5
  689. 22530  FOR II=1 TO 24
  690. 22532    LINE(X0+XP*II,Y0)-(X0+XP*II,Y0+YP*10),PSET,5,,&HCCCC
  691. 22533    LINE(X0+XP*II,Y0)-(X0+XP*II-12,Y0+8),PSET,5
  692. 22534  NEXT II
  693. 22536  FOR II=0 TO 10
  694. 22538    LINE(X0,Y0+YP*II)-(X0+XP*24,Y0+YP*II),PSET,5,,&HAAAA
  695. 22539    LINE(X0,Y0+YP*II)-(X0-12,Y0+YP*II+8),PSET,5
  696. 22540  NEXT II
  697. 22550  SYMBOL(24,108),"累積額[\]",.8!,.6!,7
  698. 22555  SYMBOL(40,96),"月額[\]",.8!,.6!,5
  699. 22560  SYMBOL(576,372),"年.月",.8!,.6!,5
  700. 22600 '-------------------- データ読み込み
  701. 22605  MESN=17:GOSUB *MESDSP:MESN=15:GOSUB *SNDMSG
  702. 22610  SCN=2:GOSUB *グラフデータ初期化
  703. 22620  IYM$=YRS$+MNS$:GDN=1
  704. 22625  GOSUB *ITM変換
  705. 22630  GOSUB *統計データ読みだし
  706. 22632  GDYM$=YRM$+"."+MNM$
  707. 22633  XS=X0+XP*(GDN-1)-16:YS=Y0+((GDN-1) MOD 3)*12+10
  708. 22635  SYMBOL(XS,YS),GDYM$,.6!,.6!,7,,,,1
  709. 22640  IF FIDX=0 THEN 22660
  710. 22650    GDT#(1,GDN)=MX#(GITM)
  711. 22651    GDT#(2,GDN)=GDT#(2,GDN-1)+MX#(GITM)
  712. 22655    TGDT#=TGDT#+GDT#(1,GDN)
  713. 22660  GOSUB *分析年月日更新
  714. 22670  IF ANLCNT=0 THEN 22700
  715. 22680  GDN=GDN+1:GOTO 22630
  716. 22700 '-------------------- グラフ作成
  717. 22710  GDMAX=GDN
  718. 22720  GOSUB *スケール検出
  719. 22730  FOR II=0 TO 10 STEP 2
  720. 22732    SCAL$(1)=RIGHT$(SPACE$(8)+STR$((SCAL#(1)/10)*II),8)
  721. 22733    SCAL$(2)=RIGHT$(SPACE$(8)+STR$((SCAL#(2)/10)*II),8)
  722. 22734    SYMBOL(X0-54,Y0-10+YP*II),SCAL$(1),.6!,.6!,5
  723. 22735    SYMBOL(X0-66,Y0+YP*II),SCAL$(2),.6!,.6!,7
  724. 22736  NEXT II
  725. 22738  MESH1$=MESH$(13)
  726. 22739  MESH2$=MESH$(3)
  727. 22740  FOR GDN=1 TO GDMAX
  728. 22750    YG=Y0+(GDT#(1,GDN)/SCAL#(1))*YP*10
  729. 22755    LINE(X0+XP*GDN-15,Y0)-(X0+XP*GDN-4,YG),PSET,5,BF
  730. 22760    LINE(X0+XP*GDN-19,Y0+2)-(X0+XP*GDN-7,YG+2),PSET,0,BF,MESH1$
  731. 22765    YG=Y0+(GDT#(2,GDN)/SCAL#(2))*YP*10
  732. 22770    X1=X0+XP*(GDN-1)- 6:Y1=YG+4
  733. 22771    X2=X0+XP*(GDN  )- 6:Y2=YG+4
  734. 22772    X3=X0+XP*(GDN  )-12:Y3=YG+8
  735. 22773    X4=X0+XP*(GDN-1)-12:Y4=YG+8
  736. 22774    CONNECT(X1,Y1)-(X2,Y2)-(X3,Y3)-(X4,Y4)-(X1,Y1),7,PSET,F,MESH2$
  737. 22775    LINE(X2,Y2)-(X2,Y0+4),PSET,7
  738. 22776    LINE(X3,Y3)-(X3,Y0+8),PSET,7
  739. 22777    LINE(X4,Y4)-(X4,Y0+8),PSET,7
  740. 22780  NEXT GDN
  741. 22790  LINE(216,92)-(364,108),PSET,7,BF
  742. 22900  SYMBOL(222,94),"総合計:\"+STR$(TGDT#),1,.8!,0,,,&H01
  743. 22970 GOSUB *画面フラッシュ
  744. 22980 RETURN
  745. 22990 '
  746. 23000 *AN03:'//////////////////// [日別項目別変動]
  747. 23010  X0=52:Y0=262:XP=3:YP=-10:YO=128
  748. 23011  DATA 100000,100000,100000, 10000, 10000
  749. 23012  DATA   2000, 10000, 20000, 10000, 10000
  750. 23013  DATA  10000, 10000, 10000, 10000, 50000
  751. 23015  RESTORE 23011:FOR II=2 TO SITM:READ SCAL#(1):NEXT II
  752. 23020  FOR II=0 TO 1:Y0X=Y0+YO*II
  753. 23022   LINE(X0,Y0X)-(X0+XP*31*6,Y0X),PSET,5
  754. 23024   LINE(X0,Y0X)-(X0,Y0X+YP*10),PSET,5
  755. 23030   FOR JJ=1 TO 10
  756. 23032    LINE(X0,Y0+YO*II+YP*JJ)-(X0+XP*31*6,Y0+YO*II+YP*JJ),PSET,5,,&HAAAA
  757. 23034   NEXT JJ
  758. 23040   FOR JJ=0 TO 31*6 STEP 31
  759. 23041    LINE(X0+XP*JJ,Y0X)-(X0+XP*JJ,Y0X+YP*10),PSET,5
  760. 23042    LINE(X0+XP*(JJ+10),Y0X)-(X0+XP*(JJ+10),Y0X+YP*10),PSET,5,,&HAAAA
  761. 23043    LINE(X0+XP*(JJ+20),Y0X)-(X0+XP*(JJ+20),Y0X+YP*10),PSET,5,,&HAAAA
  762. 23045   NEXT JJ
  763. 23050   FOR JJ=0 TO 10 STEP 2
  764. 23052    SCAL$=RIGHT$(SPACE$(8)+STR$((SCAL#(1)/10)*JJ),8)
  765. 23054    SYMBOL(X0-42,Y0X+YP*JJ-6),SCAL$,.6!,.6!,7
  766. 23056   NEXT JJ
  767. 23058  NEXT II
  768. 23060  LINE(217,92)-(308,108),PSET,7,BF
  769. 23061  LINE(310,92)-(614,108),PSET,7,BF
  770. 23062  'SYMBOL(222,94),"\ 00000000  01234567890123456789012345678901",1,.8!,0,,,&H01
  771. 23063  LINE(88,110)-(614,126),PSET,5,BF
  772. 23064  LINE(20,92)-(86,126),PSET,7,BF
  773. 23066  SYMBOL(96,112),"出来事:",.9!,.8!,0,,,&H01,4
  774. 23067  'SYMBOL(26,94 ),"1992.07",.9!,.8!,0,,,&H01,1
  775. 23068  'SYMBOL(26,112),"25[wed]",.9!,.8!,0,,,&H01,1
  776. 23100 '-------------------- データ読み込み
  777. 23105  MESN=17:GOSUB *MESDSP:MESN=15:GOSUB *SNDMSG
  778. 23110  FOR II=1 TO 366:GDYY=0:GDYM$="":NEXT II
  779. 23120  IYM$=YRS$+MNS$:GDN=1
  780. 23125  GOSUB *ITM変換
  781. 23130  GOSUB *HKISRC 
  782. 23132  GDYM$=YRM$+"."+MNM$
  783. 23133  XS=X0+((GDN-1) MOD (31*6))*XP+8:YS=Y0+INT((GDN-1)/(31*6))*YO+4
  784. 23135  SYMBOL(XS,YS),GDYM$,1,.8!,6,,,&H01,1
  785. 23140  IF FIDX=0 THEN 23160
  786. 23141    FOR RDY=1 TO 31
  787. 23145      TCALF=0:GOSUB *HKDGET
  788. 23150      GDYY(GDN)=DYN#(GITM)
  789. 23151      GDYM$(GDN)=YRM$+MNM$+RIGHT$(STR$(100+RDY),2)+DRM$(GITM)
  790. 23152      GDYE$(GDN)=DEV$
  791. 23153      GOSUB *AN03グラフ作成
  792. 23156      GDN=GDN+1
  793. 23158    NEXT RDY
  794. 23160  GOSUB *分析年月日更新
  795. 23170  IF ANLCNT=0 THEN 23200
  796. 23180  GOTO 23130
  797. 23200 '-------------------- データ読み取り
  798. 23202  GOSUB *画面フラッシュ
  799. 23205  GDN=GDN-1:'TBS=1:GOSUB *AN03グラフ読み取り
  800. 23210  MESN=21:GOSUB *MESDSP:MESN=18:GOSUB *SNDMSG
  801. 23220  SWPASS=1:G=1:GOSUB *マウスボタン選択
  802. 23230  IF SWNO=5 THEN *AN03END
  803. 23240  IF TBS=0 THEN 23220
  804. 23242  IF TBS>GDN THEN 23220
  805. 23244  GOSUB *AN03グラフ読み取り
  806. 23246  GOTO 23220
  807. 23250 *AN03グラフ読み取り
  808. 23251  LINE(217,92)-(308,108),PSET,7,BF
  809. 23252  LINE(310,92)-(614,108),PSET,7,BF
  810. 23253  LINE(157,110)-(614,126),PSET,5,BF
  811. 23254  LINE(20,92)-(86,126),PSET,7,BF
  812. 23260  YRM$=MID$(GDYM$(TBS),1,4):YR=VAL(YRM$)
  813. 23261  MNM$=MID$(GDYM$(TBS),5,2):MN=VAL(MNM$)
  814. 23262  DYM$=MID$(GDYM$(TBS),7,2):DY=VAL(DYM$)
  815. 23263  RMM$=MID$(GDYM$(TBS),9,32):GOSUB *週分析E
  816. 23264  SYMBOL(26,96),YRM$+"."+MNM$,.9!,.8!,0,,,&H01,1
  817. 23265  SYMBOL(26,112),DYM$+"[   ]",.9!,.8!,0,,,&H01,1
  818. 23266  SYMBOL(50,112),WKM$,.9!,.8!,CW,,,&H01,1
  819. 23270  SYMBOL(222,94),"\"+STR$(GDYY(TBS)),1,.8!,0,,,&H01,1
  820. 23271  SYMBOL(316,94),RMM$,1,.8!,0,,,&H02
  821. 23272  SYMBOL(160,112),GDYE$(TBS),.9!,.8!,0
  822. 23290  RETURN
  823. 23300 *AN03グラフ作成
  824. 23305  SCALOV=0:SCALZR=0
  825. 23310  XG=X0+((GDN-1) MOD (31*6))*XP
  826. 23320  IF GDYY(GDN)>SCAL#(1) THEN SCALOV=1:GOTO 23326
  827. 23322  IF GDYY(GDN)=0 THEN SCALZR=1
  828. 23325  YG=Y0+INT((GDN-1)/(31*6))*YO+YP*(GDYY(GDN)/SCAL#(1))*10:GOTO 23330
  829. 23326  YG=Y0+INT((GDN-1)/(31*6))*YO+YP*10 
  830. 23330  IF GDN=1 OR GDN=31*6+1 THEN 23341
  831. 23340  LINE(XGX+2,YGX)-(XGX+2,YG),PSET,4
  832. 23341  IF SCALZR=1 THEN 23343
  833. 23342  LINE(XG-1,YG-1)-(XG+1,YG+1),PSET,7,BF:GOTO 23345
  834. 23343  LINE(XG-1,YG)-(XG+1,YG),PSET,7,BF:GOTO 23350
  835. 23345  IF SCALOV=1 THEN LINE(XG+1,YG-2)-(XG-1,YG-1),PSET,2,B
  836. 23350  XGX=XG:YGX=YG
  837. 23360  RETURN
  838. 23400 *AN03END
  839. 23410  G=1:B=5:BST(G,B)=1:GOSUB *ボタンON_OFF表示
  840. 23420  G=1:B=5:BST(G,B)=0:GOSUB *ボタンON_OFF表示
  841. 23480 RETURN
  842. 23490 '
  843. 23500 *AN04:'//////////////////// [月間収支推移  ]
  844. 23510  X0=88:Y0=240:XP=20:YP=-12
  845. 23520  LINE(X0,Y0)-(X0+XP*26,Y0),PSET,5
  846. 23525  LINE(X0,Y0-YP*10)-(X0,Y0+YP*10),PSET,5
  847. 23530  FOR II=1 TO 24
  848. 23532    LINE(X0+XP*II,Y0-YP*10)-(X0+XP*II,Y0+YP*10),PSET,5,,&HCCCC
  849. 23534  NEXT II
  850. 23536  FOR II=-10 TO 10 STEP 1
  851. 23538    LINE(X0,Y0+YP*II)-(X0+XP*24,Y0+YP*II),PSET,5,,&HAAAA
  852. 23539    LINE(X0+XP*24.5!,Y0+YP*II)-(X0+XP*26,Y0+YP*II),PSET,5,,&HAAAA
  853. 23540  NEXT II
  854. 23550  SYMBOL(576,370),"TOTAL",.8!,.8!,5,,,&H01,1
  855. 23560  SYMBOL(22,124),"ヒ",1,1,5,,,&H01
  856. 23561  SYMBOL(24,150),"収",.8!,.8!,5,,,&H01
  857. 23562  SYMBOL(24,170),"入",.8!,.8!,5,,,&H01
  858. 23565  SYMBOL(24,300),"支",.8!,.8!,5,,,&H01
  859. 23566  SYMBOL(24,320),"出",.8!,.8!,5,,,&H01
  860. 23567  SYMBOL(22,346),"フ",1,1,5,,,&H01
  861. 23600 '-------------------- データ読み込み
  862. 23605  MESN=17:GOSUB *MESDSP:MESN=15:GOSUB *SNDMSG
  863. 23610  SCN=3:GOSUB *グラフデータ初期化
  864. 23620  IYM$=YRS$+MNS$:GDN=1
  865. 23630  GOSUB *統計データ読みだし
  866. 23632  GDYM$=YRM$+"."+MNM$
  867. 23633  XS=X0+XP*(GDN-1)-16:YS=Y0-YP*10+((GDN-1) MOD 3)*12+10
  868. 23635  SYMBOL(XS,YS),GDYM$,.6!,.6!,7,,,,1
  869. 23640  IF FIDX=0 THEN 23660
  870. 23650    GDT#(1,GDN)=MX#(16)
  871. 23651    GDT#(2,GDN)=MX#(17)
  872. 23655    GDT#(3,GDN)=MX#(16)-MX#(17)
  873. 23656    TGDT#=TGDT#+GDT#(3,GDN)
  874. 23660  GOSUB *分析年月日更新
  875. 23670  IF ANLCNT=0 THEN 23700
  876. 23680  GDN=GDN+1:GOTO 23630
  877. 23700 '-------------------- グラフ作成
  878. 23710  GDMAX=GDN
  879. 23720  GOSUB *スケール検出
  880. 23725  GOSUB *スケール検出2
  881. 23730  FOR II=-10 TO 10 STEP 2
  882. 23732    SCAL$(1)=RIGHT$(SPACE$(8)+STR$((SMAXW#/10)*II),8)
  883. 23735    SYMBOL(X0-46,Y0+YP*II-3),SCAL$(1),.6!,.6!,7
  884. 23736  NEXT II
  885. 23737  MESH1$=MESH$(10)
  886. 23738  MESH2$=MESH$(14)
  887. 23739  MESH3$=MESH$(15)
  888. 23745  FOR GDN=1 TO GDMAX
  889. 23750    YG1=Y0+(GDT#(1,GDN)/SMAXW#)*YP*10
  890. 23751    YG2=Y0-(GDT#(2,GDN)/SMAXW#)*YP*10
  891. 23752    YG3=Y0+(GDT#(3,GDN)/SMAXW#)*YP*10
  892. 23755    LINE(X0+XP*GDN-15,Y0)-(X0+XP*GDN-4,YG1),PSET,0,BF,MESH1$
  893. 23756    LINE(X0+XP*GDN-15,Y0)-(X0+XP*GDN-4,YG2),PSET,0,BF,MESH2$
  894. 23758    LINE(X0+XP*GDN-XP,Y0)-(X0+XP*GDN  ,YG3),PSET,7,BF,MESH3$
  895. 23760  NEXT GDN
  896. 23770    YG=Y0+(TGDT#/SMAXW#)*YP*10
  897. 23772    LINE(X0+XP*26-XP-6,Y0)-(X0+XP*26-4,YG),PSET,7,BF,MESH3$
  898. 23800  LINE(430,96)-(620,112),PSET,7,BF
  899. 23810  IF TGDT#>=0 THEN 23815
  900. 23812  TGDT$=RIGHT$(SPACE$(8)+STR$(ABS(TGDT#)),8)+"-":GOTO 23820
  901. 23815  TGDT$=RIGHT$(SPACE$(8)+STR$(ABS(TGDT#)),8)+"+"
  902. 23820  SYMBOL(434,98),"収支合計: \"+TGDT$,1,.8!,0,,,&H01,1
  903. 23970  GOSUB *画面フラッシュ
  904. 23980  RETURN
  905. 23990 '
  906. 24000 *AN05:'//////////////////// [月間日累積推移]
  907. 24010  X0=88:Y0=392:XP=12:YP=-25
  908. 24020  LINE(X0,Y0)-(X0+XP*32,Y0),PSET,5
  909. 24022  LINE(X0,Y0)-(X0,Y0+YP*10),PSET,5
  910. 24030  FOR II=1 TO 31
  911. 24031    LINE(X0+XP*II,Y0)-(X0+XP*II,Y0+YP*10),PSET,5,,&HCCCC
  912. 24032    IF (II MOD 5)<>0 AND II<>1 THEN 24034
  913. 24033    SYMBOL(X0+XP*II-8,Y0+4),RIGHT$(STR$(100+II),2),1,.8!,6,,,&H01
  914. 24034  NEXT II
  915. 24035  FOR II=1 TO 10
  916. 24036    LINE(X0,Y0+YP*II)-(X0+XP*32,Y0+YP*II),PSET,5,,&HAAAA
  917. 24037  NEXT II
  918. 24050  SYMBOL(464,395),"[日]",1,.8!,5,,,&H01
  919. 24060  SYMBOL(50,119),"[\]",1,.8!,5,,,&H01
  920. 24100 '-------------------- データ読み込み
  921. 24105  MESN=17:GOSUB *MESDSP:MESN=15:GOSUB *SNDMSG
  922. 24110  SCN=6:GOSUB *グラフデータ初期化
  923. 24120  IYM$=YRS$+MNS$:GDN=1
  924. 24125  GOSUB *ITM変換
  925. 24130  GOSUB *HKISRC 
  926. 24132  GOSUB *AN05年月表示
  927. 24140  IF FIDX=0 THEN 24160
  928. 24141    FOR RDY=1 TO 31
  929. 24145    GOSUB *HKDGET
  930. 24151      GDT#(GDN,RDY)=GDT#(GDN,RDY-1)+DYN#(GITM)
  931. 24158    NEXT RDY
  932. 24160  GOSUB *分析年月日更新
  933. 24170  IF ANLCNT=0 THEN 24200
  934. 24180  GDN=GDN+1:GOTO 24130
  935. 24200 '-------------------- グラフ作成
  936. 24210  GDMAX=GDN
  937. 24220  GOSUB *スケール検出
  938. 24225  GOSUB *スケール検出2
  939. 24230  FOR II=0 TO 10 
  940. 24232    SCAL$(1)=RIGHT$(SPACE$(8)+STR$((SMAXW#/10)*II),8)
  941. 24235    SYMBOL(X0-46,Y0+YP*II-3),SCAL$(1),.6!,.6!,7
  942. 24236  NEXT II
  943. 24240  FOR GDN=1 TO GDMAX
  944. 24250    FOR RDY=1 TO 31
  945. 24252      X=X0+XP*RDY:Y=Y0+(GDT#(GDN,RDY)/SMAXW#)*YP*10
  946. 24260      IF RDY=1 THEN 24264
  947. 24262      LINE(XM,YM)-(X,Y),PSET,GDN
  948. 24264      LINE(X-1,Y-1)-(X+1,Y+1),PSET,GDN,BF
  949. 24266      XM=X:YM=Y
  950. 24270    NEXT RDY
  951. 24280  NEXT GDN
  952. 24285  GOSUB *画面フラッシュ
  953. 24290  RETURN
  954. 24295 '
  955. 24350 *AN05年月表示
  956. 24355  XS0=534:YS0=142:XSP=112:YSP=16
  957. 24360  GDYM$=YRM$+"."+MNM$
  958. 24365  XS=XS0:YS=YS0+(GDN-1)*YSP
  959. 24370  SYMBOL(XS,YS),GDYM$,1,.8!,7,,,&H01,1
  960. 24375  LINE(XS-30,YS+4)-(XS- 8,YS+4),PSET,GDN
  961. 24376  LINE(XS-31,YS+3)-(XS-29,YS+5),PSET,GDN,BF
  962. 24377  LINE(XS- 9,YS+3)-(XS- 7,YS+5),PSET,GDN,BF
  963. 24380  RETURN
  964. 24490 '
  965. 24500 *AN06:'//////////////////// [項目別比率分析]
  966. 24510  X0=18:Y0=96:XP=90:YP=16
  967. 24520  LOAD@ TIFDRV$+"\HK4AN06.TIF",(X0-4,Y0-4)
  968. 24522  FOR II=1 TO 15:X=38
  969. 24523    IF II<4 THEN Y=114+16*(II-1):GOTO 24526
  970. 24524                 Y=114+16*II
  971. 24526    SYMBOL(X,Y),CFI$(II),.8!,.8!,0,,,,2
  972. 24528  NEXT II
  973. 24570  GOSUB *AN06項目表示
  974. 24600 '-------------------- データ読み込み
  975. 24605  MESN=17:GOSUB *MESDSP:MESN=15:GOSUB *SNDMSG
  976. 24610  SCN=1:GOSUB *グラフデータ初期化
  977. 24620  IYM$=YRS$+MNS$
  978. 24630  GOSUB *統計データ読みだし
  979. 24632  GDYM$=YRM$+"."+MNM$
  980. 24633  LOCATE 48,23:COLOR 4
  981. 24635  PRINT "Access File:";GDYM$;
  982. 24640  IF FIDX=0 THEN 24660
  983. 24650    FOR GDN=1 TO 18
  984. 24651      GDT#(1,GDN)=GDT#(1,GDN)+MX#(GDN)
  985. 24655    NEXT GDN
  986. 24660  GOSUB *分析年月日更新
  987. 24670  IF ANLCNT=0 THEN 24700
  988. 24680  GOTO 24630
  989. 24700 '-------------------- グラフ作成
  990. 24710  XC0=465:YC0=297:RC=120:XG0=345:YG0=128:XGP=240:YGP=32
  991. 24720  FOR GDN=1 TO 15
  992. 24722    IF GDN>3 THEN TGDT#=GDT#(1,17) ELSE TGDT#=GDT#(1,16)
  993. 24724    IF GDN>3 THEN YS=Y0+YP*(GDN+1) ELSE YS=Y0+YP*GDN
  994. 24726    GDTC=0:GDAC=&H00:GOSUB *AN06数値表示
  995. 24728  NEXT GDN
  996. 24730  TGDT#=GDT#(1,16):YS=Y0+YP*4:GDN=16
  997. 24731  GDTC=1:GDAC=&H01:GOSUB *AN06数値表示
  998. 24732  TGDT#=GDT#(1,17):YS=Y0+YP*18:GDN=17
  999. 24733  GDTC=1:GDAC=&H01:GOSUB *AN06数値表示
  1000. 24734  TGDT#=GDT#(1,17):YS=Y0+YP*17:GDN=18
  1001. 24735  GDTC=1:GDAC=&H01:GOSUB *AN06数値表示
  1002. 24736  GDT#(1,19)=GDT#(1,16)-GDT#(1,17)
  1003. 24737  GDT1$="\"+RIGHT$(SPACE$(9)+STR$(GDT#(1,19)),9)
  1004. 24738  YS=Y0+YP*(19)
  1005. 24739  SYMBOL(X0+XP*1+8,YS+3),GDT1$,1,.8!,0,,,&H01
  1006. 24740  XM=XG0
  1007. 24741  LINE(XG0+6,YG0+6)-(XG0+XGP+6,YG0+YGP+6),PSET,0,BF,MESH$(18)
  1008. 24742  LINE(XG0,YG0)-(XG0+XGP,YG0+YGP),PSET,7,B
  1009. 24743  FOR GDN=1 TO 3:IF GDT#(1,16)=0 THEN 24747
  1010. 24744    XG=XM+GDT#(1,GDN)/GDT#(1,16)*XGP
  1011. 24746    LINE(XM,YG0)-(XG,YG0+YGP),PSET,0,BF,MESH$(IMSH(GDN))
  1012. 24747    XM=XG
  1013. 24748  NEXT GDN
  1014. 24750  LINE(XG0,YG0-2)-(XG0+XGP,YG0-2),PSET,5
  1015. 24751  LINE(XG0,YG0-5)-(XG0,YG0-2),PSET,5
  1016. 24752  LINE(XG0+XGP*.5!,YG0-5)-(XG0+XGP*.5!,YG0-2),PSET,5
  1017. 24753  LINE(XG0+XGP,YG0-5)-(XG0+XGP,YG0-2),PSET,5
  1018. 24754  SCAL$="0"+SPACE$(18)+"50"+SPACE$(17)+"100 [%]"
  1019. 24755  SYMBOL(XG0-3,YG0-15),SCAL$,.8!,.6!,5
  1020. 24758  SYMBOL(430,YG0-33),"収入比率",1,1,7,,,&H01+&H02
  1021. 24760  RGM=.75!
  1022. 24761  CIRCLE(XC0+6,YC0+6),RC,0,,,,F,PSET,MESH$(18)
  1023. 24762  CIRCLE(XC0,YC0),RC,7
  1024. 24763  FOR GDN=4 TO 15
  1025. 24764    IF GDT#(1,GDN)=0 OR GDT#(1,17)=0 THEN 24769
  1026. 24765    RGX=RGM+GDT#(1,GDN)/GDT#(1,17)
  1027. 24766    IF RGX>=1 THEN RGX=RGX-1
  1028. 24768    CIRCLE(XC0,YC0),RC,0,,RGM,RGX,F,PSET,MESH$(IMSH(GDN))
  1029. 24769    RGM=RGX
  1030. 24770  NEXT GDN
  1031. 24775  CIRCLE(XC0,YC0),40,0,,,,F,PSET,7
  1032. 24778  SYMBOL(430,289),"支出比率",1,1,0,,,&H01+&H02
  1033. 24830  GOSUB *画面フラッシュ
  1034. 24840  RETURN
  1035. 24845 '
  1036. 24850 *AN06項目表示
  1037. 24852  DATA 1,5,7,2,1,7,6,3,4,5,8,9,10,11,12
  1038. 24855  RESTORE 24852
  1039. 24860  FOR II=1 TO 15:READ IMSH(II)
  1040. 24880  NEXT II
  1041. 24890  RETURN
  1042. 24900 *AN06数値表示
  1043. 24902  GDT1$="\ "+RIGHT$(SPACE$(8)+STR$(GDT#(1,GDN)),8)
  1044. 24903  IF TGDT#=0 THEN GDT2$="計算不能":GOTO 24916
  1045. 24904  TGDP#=GDT#(1,GDN)/TGDT#
  1046. 24906  GOSUB *小数点表示変換
  1047. 24916  SYMBOL(X0+XP*1+8,YS+3),GDT1$,1,.8!,GDTC,,,GDAC
  1048. 24918  SYMBOL(X0+XP*2+10,YS+3),GDT2$,1,.8!,GDTC,,,GDAC
  1049. 24920  RETURN
  1050. 24990 '
  1051. 25000 *AN07:'//////////////////// [エンゲル係数推移 ]
  1052. 25010  X0=18:Y0=96:XP=72:YP=16
  1053. 25020  LINE(X0-4,Y0-4)-(X0+XP*6+4,Y0+YP*20+4),PSET,7,BF
  1054. 25022  LINE(X0,Y0)-(X0+XP*6,Y0+YP*20),PSET,0,B
  1055. 25023  LINE(X0-1,Y0-1)-(X0+XP*6+1,Y0+YP*20+1),PSET,0,B
  1056. 25030  FOR II=1 TO 19:LINE(X0,Y0+YP*II)-(X0+XP*6,Y0+YP*II),PSET,0:NEXT II
  1057. 25031  PAINT (X0+1,Y0+1),MESH$(5),0
  1058. 25032  PAINT (X0+1,Y0+YP*19+1),MESH$(11),0
  1059. 25040  FOR II=1 TO 5:LINE(X0+XP*II,Y0)-(X0+XP*II,Y0+YP*20),PSET,0:NEXT II
  1060. 25043  DATA "  年.月","支出計[A]","基支出[B]","食  費[C]"," B/A"," C/A"
  1061. 25044  RESTORE 25043:FOR II=0 TO 5 :READ ITM$
  1062. 25045    SYMBOL(X0+XP*II+4,Y0+2),ITM$,.8!,.8!,0,,,&H01,1
  1063. 25046  NEXT II
  1064. 25047  SYMBOL(36,402),"合 計",.8!,.8!,0,,,&H01,1
  1065. 25048  LINE(X0+XP*5-24,Y0)-(X0+XP*5,Y0+YP),PSET,0,BF,MESH$(9)
  1066. 25049  LINE(X0+XP*6-24,Y0)-(X0+XP*6,Y0+YP),PSET,0,BF,MESH$(14)
  1067. 25050  XG0=462:YG0=112:XGP=16:YGP=16
  1068. 25052  LINE(XG0,YG0)-(XG0+XGP*10,YG0),PSET,5
  1069. 25053  LINE(XG0,YG0)-(XG0,YG0+YGP*19+4),PSET,5
  1070. 25054  LINE(XG0,YG0+YGP*18)-(XG0+XGP*10,YG0+YGP*19+4),PSET,5,BF
  1071. 25060  FOR II=1 TO 10
  1072. 25061  LINE(XG0+XGP*II,YG0)-(XG0+XGP*II,YG0+YGP*19+4),PSET,5,,&HAAAA
  1073. 25062  NEXT II
  1074. 25063  FOR II=1 TO 19
  1075. 25064  LINE(XG0,YG0+YGP*II)-(XG0+XGP*10,YG0+YGP*II),PSET,5,,&HCCCC
  1076. 25065  NEXT II
  1077. 25066  SYMBOL(460,100),"0            50          100",.8!,.6!,5
  1078. 25100 '-------------------- データ読み込み
  1079. 25105  MESN=17:GOSUB *MESDSP:MESN=15:GOSUB *SNDMSG
  1080. 25110  SCN=3:GOSUB *グラフデータ初期化
  1081. 25115  FOR II=1 TO 3:TGDT#(II)=0:NEXT II
  1082. 25120  IYM$=YRS$+MNS$:GDN=1
  1083. 25130  GOSUB *統計データ読みだし
  1084. 25132  GDYM$=YRM$+"."+MNM$
  1085. 25133  XS=X0+4:YS=Y0+YP*GDN+2
  1086. 25135  SYMBOL(XS,YS),GDYM$,1,.8!,0,,,&H01,1
  1087. 25140  IF FIDX=0 THEN 25160
  1088. 25150    GDT#(1,GDN)=MX#(17):GDT#(1,19)=GDT#(1,19)+MX#(17):'92.10.11
  1089. 25151    GDT#(2,GDN)=MX#(18):GDT#(2,19)=GDT#(2,19)+MX#(18)
  1090. 25155    GDT#(3,GDN)=MX#(4) :GDT#(3,19)=GDT#(3,19)+MX#(4)
  1091. 25160  GOSUB *分析年月日更新
  1092. 25170  IF ANLCNT=0 THEN 25200
  1093. 25180  GDN=GDN+1:GOTO 25130
  1094. 25200 '-------------------- グラフ作成
  1095. 25210  GDMAX=GDN
  1096. 25220  FOR GDN=1 TO GDMAX
  1097. 25230    GOSUB *AN07グラフ作成
  1098. 25240  NEXT GDN
  1099. 25250  GDN=19:GOSUB *AN07グラフ作成
  1100. 25260  GOSUB *画面フラッシュ
  1101. 25270  RETURN
  1102. 25280 '
  1103. 25300 *AN07グラフ作成
  1104. 25312  GDT$(1)="\"+RIGHT$(SPACE$(8)+STR$(GDT#(1,GDN)),8)
  1105. 25314  GDT$(2)="\"+RIGHT$(SPACE$(8)+STR$(GDT#(2,GDN)),8)
  1106. 25316  GDT$(3)="\"+RIGHT$(SPACE$(8)+STR$(GDT#(3,GDN)),8)
  1107. 25320  IF GDT#(1,GDN)=0 THEN GDT$(4)="計算不能":GOTO 25326
  1108. 25322  TGDP#=GDT#(2,GDN)/GDT#(1,GDN):X1OV=0
  1109. 25323  IF TGDP#<=1 THEN X1=XG0+TGDP#*XGP*10 ELSE X1=XG0+XGP*10:X1OV=1
  1110. 25324  GOSUB *小数点表示変換:GDT$(4)=GDT2$
  1111. 25326  IF GDT#(1,GDN)=0 THEN GDT$(5)="計算不能":GOTO 25340
  1112. 25328  TGDP#=GDT#(3,GDN)/GDT#(1,GDN):X2OV=0
  1113. 25329  IF TGDP#<=1 THEN X2=XG0+TGDP#*XGP*10 ELSE X2=XG0+XGP*10:X2OV=1
  1114. 25330  GOSUB *小数点表示変換:GDT$(5)=GDT2$
  1115. 25340  FOR II=1 TO 5
  1116. 25342    SYMBOL(X0+XP*II+4,Y0+YP*GDN+2),GDT$(II),.9!,.8!,0
  1117. 25344  NEXT II
  1118. 25345  IF GDT$(4)="計算不能" THEN 25360
  1119. 25350  Y=YG0+YGP*(GDN-1)
  1120. 25352  LINE(XG0,Y+2)-(X1,Y+10),PSET,0,BF,MESH$(9)
  1121. 25353  IF X1OV=1 THEN LINE(X1,Y+2)-(X1-1,Y+10),PSET,2,BF
  1122. 25354  LINE(XG0,Y+6)-(X2,Y+14),PSET,0,BF,MESH$(14)
  1123. 25355  IF X2OV=1 THEN LINE(X2,Y+6)-(X2-1,Y+14),PSET,2,BF
  1124. 25360  RETURN
  1125. 25370 '
  1126. 25490 '
  1127. 25500 '*AN08:'//////////////////// [年別動向比較  ]
  1128. 25990 '
  1129. 26000 *AN08:'//////////////////// [月間レポート印刷 ]
  1130. 26010  X0=14:Y0=92:YP=16
  1131. 26020  LINE(X0,Y0)-(X0+608,Y0+YP*21-5),PSET,7,BF
  1132. 26022  FOR II=0 TO 20
  1133. 26024    CIRCLE(X0+8,Y0+YP*II+8),4,0,,,,F
  1134. 26026    CIRCLE(X0+600,Y0+YP*II+8),4,0,,,,F
  1135. 26028  NEXT II
  1136. 26100 '-------------------- データ読み込み
  1137. 26105  MESN=17:GOSUB *MESDSP:MESN=15:GOSUB *SNDMSG
  1138. 26120  IYM$=YRS$+MNS$:LOCATE 0,5:COLOR 0:CR$=CHR$(&H0D,&H0A)
  1139. 26125  SCN=2:GOSUB *グラフデータ初期化
  1140. 26130  GOSUB *HKISRC
  1141. 26132  GDYM$=YRM$+"."+MNM$
  1142. 26135  PR1$="月間家計簿リスト 《"+YRM$+"年"+MNM$+"月》"
  1143. 26136  PR2$="家計簿System Ver.4.0 "+DATE$+" "+TIME$
  1144. 26140  COLOR 0:PRINT SPACE$(4)+PR1$+SPACE$(2)+PR2$:PRINT
  1145. 26142  GOSUB *LAJ2:LPRINT PR1$+SPACE$(6)+PR2$+CR$
  1146. 26148 '
  1147. 26150  PR$="【出来事】"
  1148. 26151  COLOR 0:PRINT SPACE$(4)+PR$+STRING$(60,"-"):PRINT
  1149. 26152  GOSUB *LAJ2:LPRINT PR$+STRING$(63,"-")+CR$
  1150. 26155  FOR RDY=1 TO 31
  1151. 26160    GOSUB *HKDGET:GOSUB *AN08分析
  1152. 26165    YR=YRM:MN=MNM:DY=RDY:GOSUB *週分析
  1153. 26166    IF RDY>MNDN THEN PRINT:LPRINT:GOTO 26190
  1154. 26170    PR$=RIGHT$(STR$(100+RDY),2)+"("+WKM$+") "+DEV$
  1155. 26180    PRINT SPACE$(4)+PR$:GOSUB *LAJ:LPRINT PR$
  1156. 26190  NEXT RDY
  1157. 26198 '
  1158. 26200  PRINT:LPRINT
  1159. 26210  PR$="【収 入】"
  1160. 26211  COLOR 0:PRINT SPACE$(4)+PR$+STRING$(60,"-"):PRINT
  1161. 26212  GOSUB *LAJ2:LPRINT PR$+STRING$(63,"-")+CR$
  1162. 26220  GOSUB *統計データ読みだし
  1163. 26230  PR$=" 項目    合計金額   1日平均     最高額   比  率     日数"
  1164. 26231  PRX$=" 項目    合計金額   1日平均   最高額   比  率    日数"
  1165. 26232  COLOR 0:PRINT SPACE$(4)+PRX$
  1166. 26234  GOSUB *LAJ2:LPRINT PR$
  1167. 26240  FOR GDN=1 TO 3
  1168. 26242    GOSUB *AN08項目印刷
  1169. 26244  NEXT GDN:PRINT:LPRINT
  1170. 26246  PR1$=RIGHT$(SPACE$(8)+STR$(MX#(16)),8)
  1171. 26248  PR2#=INT(MX#(16)/MNDN):PR2$=RIGHT$(SPACE$(8)+STR$(PR2#),8)
  1172. 26250  PR$="合 計"+"  "+PR1$+"  "+PR2$
  1173. 26252  COLOR 0:PRINT SPACE$(4)+PR$
  1174. 26254  GOSUB *LAJ2:LPRINT PR$
  1175. 26258 '
  1176. 26260  PRINT:LPRINT
  1177. 26270  PR$="【支 出】"
  1178. 26271  COLOR 0:PRINT SPACE$(4)+PR$+STRING$(60,"-"):PRINT
  1179. 26272  GOSUB *LAJ2:LPRINT PR$+STRING$(63,"-")+CR$
  1180. 26280  PR$=" 項目    合計金額   1日平均     最高額   比  率     日数"
  1181. 26281  PRX$=" 項目    合計金額   1日平均   最高額   比  率    日数"
  1182. 26282  COLOR 0:PRINT SPACE$(4)+PRX$
  1183. 26284  GOSUB *LAJ2:LPRINT PR$
  1184. 26290  FOR GDN=4 TO 15
  1185. 26292    GOSUB *AN08項目印刷
  1186. 26294  NEXT GDN:PRINT:LPRINT
  1187. 26300  GDN=18:ITEMX$=ITEM$(18+1):ITEM$(18+1)="基支出"
  1188. 26302  GOSUB *AN08項目印刷
  1189. 26304  ITEM$(18+1)=ITEMX$
  1190. 26310  PR1$=RIGHT$(SPACE$(8)+STR$(MX#(17)),8)
  1191. 26312  PR2#=INT(MX#(17)/MNDN):PR2$=RIGHT$(SPACE$(8)+STR$(PR2#),8)
  1192. 26314  PR$="合 計"+"  "+PR1$+"  "+PR2$
  1193. 26316  COLOR 0:PRINT SPACE$(4)+PR$
  1194. 26318  GOSUB *LAJ2:LPRINT PR$
  1195. 26320 '
  1196. 26330  FOR II=5 TO 22:COLOR 0:PRINT SPACE$(78);:NEXT II
  1197. 26340  SYMBOL(268,222),"印刷終了",1,1,0,,,&H01+&H02,2
  1198. 26350  GOSUB *画面フラッシュ
  1199. 26360  RETURN
  1200. 26380 '
  1201. 26400 *AN08分析
  1202. 26410  FOR GDN=1 TO 18
  1203. 26412    IF DYN#(GDN)<>0 THEN GDT#(2,GDN)=GDT#(2,GDN)+1
  1204. 26414    IF DYN#(GDN)>GDT#(1,GDN) THEN GDT#(1,GDN)=DYN#(GDN)
  1205. 26416  NEXT GDN
  1206. 26420  RETURN
  1207. 26430 *AN08項目印刷
  1208. 26432  PR1$=RIGHT$(SPACE$(8)+STR$(MX#(GDN)),8)
  1209. 26434  PR2#=INT(MX#(GDN)/MNDN):PR2$=RIGHT$(SPACE$(8)+STR$(PR2#),8)
  1210. 26436  PR3$=RIGHT$(SPACE$(8)+STR$(GDT#(1,GDN)),8)
  1211. 26438  TGDP#=MX#(GDN)/MX#(16):GOSUB *小数点表示変換:PR4$=GDT2$
  1212. 26440  PR5$=RIGHT$(STR$(GDT#(2,GDN)),2)
  1213. 26442  PR$=ITEM$(GDN+1)+"  "+PR1$+"  "+PR2$+"  "+PR3$+"  "+PR4$+"    "+PR5$
  1214. 26444  COLOR 0:PRINT SPACE$(4)+PR$
  1215. 26446  GOSUB *LAJ2:LPRINT PR$
  1216. 26448  RETURN
  1217. 26490 '
  1218. 26500 *AN09:'//////////////////// [総計演算処理  ]
  1219. 26505  GOSUB *分析結果画面消去
  1220. 26510  MESN=20:GOSUB *MESDSP:MESN=15:GOSUB *SNDMSG
  1221. 26520  GOSUB *HKIOPN:CLOSE
  1222. 26530  RI=1 :GOSUB *HKIGET:SX$(1)=YRM$:SX$(2)=MNM$
  1223. 26540  RI=IR:GOSUB *HKIGET:SX$(3)=YRM$:SX$(4)=MNM$
  1224. 26550  GOSUB *分析条件表示
  1225. 26590  LOCATE 0,5
  1226. 26600  FOR LOOP=1 TO IR
  1227. 26610    RI=LOOP:GOSUB *HKIGET
  1228. 26620    COLOR 7
  1229. 26630    PRINT "   ";YRM$;"年";MNM$;"月 家計簿ファイル --- ";
  1230. 26650    IF RIGHT$(IMAK$,1)<>" " THEN 26710
  1231. 26660    COLOR 6:PRINT "処理中 !! ";
  1232. 26670    GOSUB *HKTCAL
  1233. 26680    RMN=MNM:GOSUB *HKTPUT
  1234. 26685    MID$(IMAK$,32,1)="*":GOSUB *HKIPUT
  1235. 26690    LOCATE POS(0)-10,CSRLIN:COLOR 4:PRINT "処理終了  "
  1236. 26700    GOTO 26720
  1237. 26710    PRINT "処理済    "
  1238. 26720  NEXT LOOP
  1239. 26730  GOSUB *分析結果画面消去
  1240. 26980  RETURN
  1241. 26990 '
  1242. 27000 *AN10:'//////////////////// [
  1243. 27500 *AN11:'//////////////////// [
  1244. 28000 *AN12:'//////////////////// [
  1245. 28500 *AN13:'//////////////////// [
  1246. 29000 *AN14:'//////////////////// [
  1247. 29500 *AN15:'//////////////////// [
  1248. 29990 '
  1249. 30000 *分析条件合理性判定
  1250. 30020  YRS$=RIGHT$(STR$(10000+YRS),4)
  1251. 30030  MNS$=RIGHT$(STR$(100+MNS),2):IYM$=YRS$+MNS$:GOSUB *HKISRC
  1252. 30040    IF FIDX=0 THEN  MESN=15:GOSUB *VALERR :GOTO 30160:'NG
  1253. 30050  IF SMOPT(SMODE,2)=0             THEN 30110:'?
  1254. 30060  YRE$=RIGHT$(STR$(10000+YRE),4)
  1255. 30070  MNE$=RIGHT$(STR$(100+MNE),2):IYM$=YRE$+MNE$:GOSUB *HKISRC
  1256. 30080    IF FIDX=0 THEN  MESN=16:GOSUB *VALERR :GOTO 30160:'NG
  1257. 30090    IF (YRS*12+MNS)<=(YRE*12+MNE) THEN 30102:'?
  1258. 30100                    MESN=7 :GOSUB *VALERR :GOTO 30160:'NG
  1259. 30102    IF (YRE*12+MNE)-(YRS*12+MNS)<=SMOPT(SMODE,2)-1 THEN 30110:'?
  1260. 30103    ASMES$="★★分析期間範囲:"+STR$(SMOPT(SMODE,2))+"か月以内"
  1261. 30104                    MESN=8 :GOSUB *VALERR:GOTO 30160:'NG 
  1262. 30110  IF SMOPT(SMODE,3)=0             THEN 30150:'OK
  1263. 30120    IF SITM=1 THEN  MESN=10:GOSUB *VALERR :GOTO 30160:'NG
  1264. 30121    IF SITM=20 THEN MESN=10:GOSUB *VALERR :GOTO 30160:'NG
  1265. 30125    IF SITM=0 THEN  MESN=11:GOSUB *VALERR :GOTO 30160:'NG
  1266. 30130    IF SMOPT(SMODE,3)=1           THEN 30150:'OK
  1267. 30140    IF SITM>16 THEN MESN=10:GOSUB *VALERR :GOTO 30160:'NG
  1268. 30150  ANLCDF=1:RETURN:'Good  !!
  1269. 30160  ANLCDF=0:RETURN:'No Good!
  1270. 30170  *VALERR
  1271. 30175   GOSUB *MESDSP:MESN=25:GOSUB *SNDMSG
  1272. 30176   LOCATE 50,23:COLOR 7:PRINT ASMES$;
  1273. 30180   FOR II=1 TO 10000:NEXT II
  1274. 30185   MESN=3:GOSUB *MESDSP:ASMES$=""
  1275. 30190   RETURN
  1276. 30195 '
  1277. 30200 *スケール検出
  1278. 30210  FOR II=1 TO SCN:SMAX#(II)=0:NEXT II
  1279. 30220  FOR II=1 TO SCN:FOR JJ=1 TO 31
  1280. 30230    IF ABS(GDT#(II,JJ))>SMAX#(II) THEN SMAX#(II)=ABS(GDT#(II,JJ))
  1281. 30240  NEXT JJ:NEXT II
  1282. 30250  DATA     1000,    1500,    2000,    2500,    5000,    7500
  1283. 30260  DATA    10000,   15000,   20000,   25000,   50000,   75000
  1284. 30270  DATA   100000,  150000,  200000,  250000,  500000,  750000
  1285. 30280  DATA  1000000, 1500000, 2000000, 2500000, 5000000, 7500000
  1286. 30290  DATA 10000000,15000000,20000000,25000000,50000000,75000000
  1287. 30300  FOR II=1 TO SCN
  1288. 30305    RESTORE 30250
  1289. 30310    FOR JJ=1 TO 30:READ SCAL#(II)
  1290. 30320      IF SCAL#(II)>SMAX#(II) THEN JJ=31:GOTO 30330
  1291. 30330  NEXT JJ:NEXT II
  1292. 30340  RETURN
  1293. 30395 '
  1294. 30400 *グラフデータ初期化
  1295. 30410  FOR II=1 TO SCN:FOR JJ=0 TO 31
  1296. 30420    GDT#(II,JJ)=0
  1297. 30430  NEXT JJ:NEXT II:TGDT#=0
  1298. 30440  RETURN
  1299. 30450 *ITM変換
  1300. 30460  GITM=SITM-1
  1301. 30470  IF SITM=19 THEN GITM=17
  1302. 30480  IF SITM=18 THEN GITM=18
  1303. 30490  RETURN
  1304. 30495 '
  1305. 30500 *統計データ読みだし
  1306. 30510  GOSUB *HKISRC
  1307. 30520  IF FIDX=0 THEN 30580
  1308. 30530  IF RIGHT$(IMAK$,1)<>" " THEN 30570
  1309. 30540  GOSUB *HKTCAL
  1310. 30550  RMN=MNM:GOSUB *HKTPUT
  1311. 30560  MID$(IMAK$,32,1)="*":GOSUB *HKIPUT
  1312. 30570  RMN=MNM:GOSUB *HKTGET
  1313. 30580  RETURN
  1314. 30590 '
  1315. 30600 *スケール検出2
  1316. 30610  SMAXW#=0
  1317. 30620  FOR II=1 TO SCN
  1318. 30630    IF SCAL#(II)<SMAXW# THEN 30650
  1319. 30640    SMAXN=II:SMAXW#=SCAL#(II)
  1320. 30650  NEXT II
  1321. 30660  RETURN
  1322. 30670 '
  1323. 30700 *シート選択判定
  1324. 30710  X0=52:Y0=262:XP=3:YP=-10:YO=128
  1325. 30720  IF X_M<X0-1 OR X_M>X0+XP*31*6-1 THEN 30770
  1326. 30730  IF Y_M<Y0+YP*10 OR Y_M>Y0+YO    THEN 30770
  1327. 30735  IF Y_M>Y0 AND Y_M<Y0+YO+YP*10   THEN 30770
  1328. 30740  IF Y_M>Y0 THEN YOFF=1 ELSE YOFF=0
  1329. 30750  TBS=INT((X_M-(X0-1))/XP)+1+YOFF*31*6
  1330. 30760  PLAY "O6L16EC":RETURN
  1331. 30770  TBS=0:PLAY "O7L16CE":RETURN
  1332. 30780 '
  1333. 30800 *画面フラッシュ
  1334. 30810  FOR II=1 TO 5
  1335. 30820    PALETTE 13,[255,160,200]
  1336. 30825  '  PALETTE  8,[160,240,250]
  1337. 30830    FOR JJ=1 TO 500:NEXT JJ
  1338. 30840    PALETTE 13,[160,160,200]
  1339. 30845  '  PALETTE  8,[ 64, 64, 64]
  1340. 30850    FOR JJ=1 TO 300:NEXT JJ
  1341. 30860  NEXT II
  1342. 30870  RETURN
  1343. 30880 '
  1344. 30900 *小数点表示変換
  1345. 30910  GDT21=INT(TGDP#*100)
  1346. 30920  GDT22$=RIGHT$(STR$(INT(10000+(TGDP#*100-GDT21)*1000)),3)
  1347. 30930  GDT21$=STR$(GDT21)+"."
  1348. 30940  GDT2$=RIGHT$(SPACE$(5)+GDT21$+GDT22$+" %",9)
  1349. 30950  RETURN
  1350. 30960 '
  1351. 31000 *LAJ  :'////////// 漢字文字ピッチ縮小
  1352. 31010  LPRINT SPACE$(3)+CHR$(&H1C);"$";CHR$(&H22,&H76);
  1353. 31020  RETURN
  1354. 31040 *LAJ2 :'////////// 漢字文字ピッチ縮小2
  1355. 31050  LPRINT SPACE$(3)+CHR$(&H1C);"$";CHR$(&H23,&H72);
  1356. 31060  RETURN
  1357. 31070 '
  1358. 36000 *メッシュデータ定義
  1359. 36005 '//////// [1]青
  1360. 36010  MESH$(1)=CHR$(&H99,&H99,&H99,&H99)
  1361. 36015 '//////// [2]赤
  1362. 36020  MESH$(2)=CHR$(&HAA,&HAA,&HAA,&HAA)
  1363. 36025 '//////// [3]ピンク
  1364. 36030  MESH$(3)=CHR$(&HBB,&HBB,&HBB,&HBB)
  1365. 36035 '//////// [4]緑
  1366. 36040  MESH$(4)=CHR$(&HCC,&HCC,&HCC,&HCC)
  1367. 36045 '//////// [5]青グレー
  1368. 36050  MESH$(5)=CHR$(&HDD,&HDD,&HDD,&HDD)
  1369. 36055 '//////// [6]黄色
  1370. 36060  MESH$(6)=CHR$(&HEE,&HEE,&HEE,&HEE)
  1371. 36065 '//////// [7]うす青
  1372. 36070  MESH$(7)=CHR$(&H9F,&H9F,&H9F,&H9F,&HF9,&HF9,&HF9,&HF9)
  1373. 36075 '//////// [8]うす赤
  1374. 36080  MESH$(8)=CHR$(&HAF,&HAF,&HAF,&HAF,&HFA,&HFA,&HFA,&HFA)
  1375. 36085 '//////// [9]うすピンク
  1376. 36090  MESH$(9)=CHR$(&HBF,&HBF,&HBF,&HBF,&HFB,&HFB,&HFB,&HFB)
  1377. 36095 '//////// [10]うす緑
  1378. 36100  MESH$(10)=CHR$(&HCF,&HCF,&HCF,&HCF,&HFC,&HFC,&HFC,&HFC)
  1379. 36105 '//////// [11]うす青グレー
  1380. 36110  MESH$(11)=CHR$(&HDF,&HDF,&HDF,&HDF,&HFD,&HFD,&HFD,&HFD)
  1381. 36115 '//////// [12]うす黄色
  1382. 36120  MESH$(12)=CHR$(&HEF,&HEF,&HEF,&HEF,&HFE,&HFE,&HFE,&HFE)
  1383. 36125 '//////// [13]オレンジ
  1384. 36130  MESH$(13)=CHR$(&HAE,&HAE,&HAE,&HAE,&HEA,&HEA,&HEA,&HEA)
  1385. 36135 '//////// [14]赤紫
  1386. 36140  MESH$(14)=CHR$(&HAB,&HAB,&HAB,&HAB,&HBA,&HBA,&HBA,&HBA)
  1387. 36145 '//////// [15]しろ斜線青
  1388. 36150  MESH$(15)=CHR$(&HF9,&H99,&HF9,&H99,&H99,&H9F,&H99,&H9F,&H99,&HF9,&H99,&HF9,&H9F,&H99,&H9F,&H99)
  1389. 36155 '//////// [16]しろグレー
  1390. 36160  MESH$(16)=CHR$(&H77,&H77,&H77,&H77)
  1391. 36165 '//////// [17]明るいしろグレー
  1392. 36170  MESH$(17)=CHR$(&H7F,&H7F,&H7F,&H7F,&HF7,&HF7,&HF7,&HF7)
  1393. 36175 '//////// [18]暗いしろグレー
  1394. 36180  MESH$(18)=CHR$(&H70,&H70,&H70,&H70,&H07,&H07,&H07,&H07)
  1395. 36190  RETURN
  1396. 36195 '
  1397. 36990 '
  1398. 37000 *分析モード読み取り
  1399. 37005  RESTORE *分析モード項目:READ MODEN
  1400. 37010  FOR SMODE=1 TO MODEN
  1401. 37015    READ SMODE$(SMODE)
  1402. 37020    FOR II=1 TO 3:READ SMOPT(SMODE,II):NEXT II
  1403. 37025  NEXT SMODE
  1404. 37030  SMODE=1
  1405. 37035  RESTORE *項目データ
  1406. 37040  FOR II=1 TO 20
  1407. 37045    READ ITEM$(II),ITEMC(II)
  1408. 37046    IF II>1 AND II<17 THEN ITEM$(II)=CFI$(II-1)
  1409. 37050  NEXT II
  1410. 37055  RETURN
  1411. 37060 '
  1412. 37065 *ボタン座標読み取り
  1413. 37070  RESTORE *ボタン座標:READ SWGN
  1414. 37075  FOR G=1 TO SWGN
  1415. 37080    READ SWN(G),SMX(G),SMY(G),SMW(G)
  1416. 37085    FOR B=1 TO SWN(G)
  1417. 37090      READ XB1(G,B),XB2(G,B),YB1(G,B),YB2(G,B)
  1418. 37095    NEXT B
  1419. 37100  NEXT G
  1420. 37105  RETURN
  1421. 37110 '
  1422. 37115 *ボタンON_OFF表示
  1423. 37120  IF BST(G,B)=1 THEN BSC=7:BSB=0:BSA=2:GOTO 37130
  1424. 37125                    BSC=0:BSB=7:BSA=5
  1425. 37130   CONNECT(XB1(G,B  ),YB2(G,B)  )-(XB2(G,B)  ,YB2(G,B)  )-(XB2(G,B  ),YB1(G,B)  ),BSC,PSET
  1426. 37135   CONNECT(XB1(G,B)+1,YB2(G,B)-1)-(XB2(G,B)-1,YB2(G,B)-1)-(XB2(G,B)-1,YB1(G,B)+1),BSC,PSET
  1427. 37140   CONNECT(XB1(G,B)  ,YB2(G,B)  )-(XB1(G,B)  ,YB1(G,B)  )-(XB2(G,B)  ,YB1(G,B)  ),BSB,PSET
  1428. 37145   CONNECT(XB1(G,B)+1,YB2(G,B)-1)-(XB1(G,B)+1,YB1(G,B)+1)-(XB2(G,B)-1,YB1(G,B)+1),BSB,PSET
  1429. 37150   LINE(XB1(G,B)+4,YB1(G,B)+4)-(XB1(G,B)+6,YB1(G,B)+5),PSET,BSA,BF
  1430. 37152   IF BST(G,B)=1 THEN SMSGPLAY 0:WAIT 8
  1431. 37155  RETURN
  1432. 37160 '
  1433. 37165 *マウスボタン選択
  1434. 37170  SWERC=0
  1435. 37175  IF MOUSE(2,0)=0 THEN 37175
  1436. 37180  X_M=MOUSE(4,0):Y_M=MOUSE(5,0):SWNO=0
  1437. 37185  FOR IMS=1 TO SWN(G)
  1438. 37190    IF (X_M>XB1(G,IMS) AND X_M<XB2(G,IMS)) ELSE 37205
  1439. 37195    IF (Y_M>YB1(G,IMS) AND Y_M<YB2(G,IMS)) ELSE 37205
  1440. 37200    SWNO=IMS:IMS=SWN(G)+1
  1441. 37205  NEXT IMS:FOR IM=1 TO 500:NEXT IM
  1442. 37210  IF SWNO=0 AND SWPASS=1 THEN GOSUB *シート選択判定:GOTO 37230
  1443. 37215  IF SWNO=0 AND SWERC>5  THEN MESN=12:GOSUB *SNDMSG       :GOTO 37175
  1444. 37220  IF SWNO=0              THEN SMSGPLAY 3:SWERC=SWERC+1:GOTO 37175
  1445. 37230  SWPASS=0
  1446. 37235  RETURN
  1447. 37240 '
  1448. 37245 *数字漢字変換
  1449. 37250  NBK$=""
  1450. 37255  FOR INBK=1 TO NBN
  1451. 37260    NBAX$=MID$(NBA$,INBK,1)
  1452. 37265    IF NBAX$=" " THEN NBK$=NBK$+" ":GOTO 37275
  1453. 37270    NBK$=NBK$+KNJ$(&H2330+VAL(NBAX$))
  1454. 37275  NEXT INBK
  1455. 37280  RETURN
  1456. 37285 '
  1457. 37290 '
  1458. 37305 '
  1459. 37310 *FADEOUT:CLS 1:CONSOLE 0,24,0
  1460. 37315  FOR II=0 TO 15
  1461. 37320    PALETTE II,[16*II,16*II,16*II]
  1462. 37325  NEXT II
  1463. 37330  FOR II=0 TO 255 STEP 5
  1464. 37335    FOR JJ=0 TO 15:KK=16*JJ+II*(255-16*JJ)/255
  1465. 37340      PALETTE JJ,[KK,KK,KK]
  1466. 37345    NEXT JJ
  1467. 37350  NEXT II
  1468. 37355  RETURN
  1469. 37360 '
  1470. 37365 *確認
  1471. 37370  LOCATE 27,3:PRINT SPACE$(52)
  1472. 37375  GET@A(214,50)-(630,79),CUTN#
  1473. 37380  LOAD@ TIFDRV$+"\CAUTION.TIF",(214,50)
  1474. 37382  PLAY "o6l4ce"
  1475. 37385  FOR II=1 TO 4
  1476. 37390    LOCATE 40,3:COLOR 6:PRINT CMES$;:'28chr
  1477. 37395    WAIT SWAIT/10
  1478. 37400    LOCATE 40,3:PRINT SPACE$(28)
  1479. 37405    WAIT SWAIT/10
  1480. 37410  NEXT II
  1481. 37415  LOCATE 40,3:COLOR 7:PRINT CMES$;:MESN=19:GOSUB *SNDMSG:'28chr
  1482. 37420  G=3:GOSUB *マウスボタン選択
  1483. 37425  G=3:B=SWNO:BST(G,B)=1:GOSUB *ボタンON_OFF表示
  1484. 37430  LOCATE 40,3:PRINT SPACE$(28)
  1485. 37435  WAIT SWAIT/5
  1486. 37440  PUT@A(214,50)-(630,79),CUTN#
  1487. 37445  RETURN
  1488. 37450 '
  1489. 37500 *HKIOPN:'---------- インデックスファイルオープン
  1490. 37510  DRV$=LEFT$(DATDRV$,2)
  1491. 37520  IF LEN(DATDRV$)=3 THEN DRV$=LEFT$(DATDRV$,2):PATH$="":GOTO 37540
  1492. 37530  PATH$=RIGHT$(DATDRV$,LEN(DATDRV$)-2)
  1493. 37540  FLN$=DRV$+"(38)"+PATH$+"\HLIDX.DAT"
  1494. 37550  OPEN "R",#2,FLN$
  1495. 37560  FIELD #2,6 AS I$(1),32 AS I$(2)
  1496. 37570  IR=LOF(2)
  1497. 37580  RETURN
  1498. 37590 '
  1499. 37600 *HKDOPN:'---------- 家計簿データファイルオープン
  1500. 37610  DRV$=LEFT$(DATDRV$,2)
  1501. 37620  IF LEN(DATDRV$)=3 THEN DRV$=LEFT$(DATDRV$,2):PATH$="":GOTO 37640
  1502. 37630  PATH$=RIGHT$(DATDRV$,LEN(DATDRV$)-2)
  1503. 37640  FLN$=DRV$+"(768)"+PATH$+"\HL"+IYM$+".DAT"
  1504. 37650  OPEN "R",#1,FLN$
  1505. 37660  FIELD #1,64 AS D$(1),10*16 AS D$(2),32*4 AS D$(3),32*4 AS D$(4),32*4 AS D$(5),32*4 AS D$(6),32 AS D$(7)
  1506. 37670  AR=LOF(1)
  1507. 37680  RETURN
  1508. 37690 '
  1509. 37700 *ANLSOPN:'---------- 分析条件ファイルオープン
  1510. 37710  DRV$=LEFT$(PRGDRV$,2)
  1511. 37720  IF LEN(PRGDRV$)=3 THEN DRV$=LEFT$(PRGDRV$,2):PATH$="":GOTO 37740
  1512. 37730  PATH$=RIGHT$(PRGDRV$,LEN(PRGDRV$)-2)
  1513. 37740  FLN$=DRV$+"(54)"+PATH$+"\ANLS.DAT"
  1514. 37750  OPEN "R",#1,FLN$
  1515. 37760  FIELD #1,4 AS S$(1),2 AS S$(2),4 AS S$(3),2 AS S$(4),24 AS S$(5),8 AS S$(6),8 AS S$(7),2 AS S$(8)
  1516. 37770  RETURN
  1517. 37780 '
  1518. 37790 *HKTOPN:'---------- 年間統計ファイルオープン
  1519. 37800  DRV$=LEFT$(DATDRV$,2)
  1520. 37810  IF LEN(DATDRV$)=3 THEN DRV$=LEFT$(DATDRV$,2):PATH$="":GOTO 37830
  1521. 37820  PATH$=RIGHT$(DATDRV$,LEN(DATDRV$)-2)
  1522. 37830  FLN$=DRV$+"(200)"+PATH$+"\HL"+LEFT$(IYM$,4)+"AL.DAT"
  1523. 37840  OPEN "R",#1,FLN$
  1524. 37850  FIELD #1,10*20 AS M$
  1525. 37860  RETURN
  1526. 37870 '
  1527. 37880 *HKISRC:'---------- インデックスファイル検索
  1528. 37890  FIDX=0
  1529. 37900  GOSUB *HKIOPN
  1530. 37910  FOR R=1 TO IR
  1531. 37920    GET #2,R
  1532. 37930    IF IYM$<>I$(1) THEN 37950
  1533. 37940    IYM$=I$(1):IMAK$=I$(2):RI=R:R=IR+1:FIDX=1
  1534. 37950  NEXT R:IF FIDX=0 THEN 37980
  1535. 37960  GET #2,RI
  1536. 37965  YRM$=LEFT$(I$(1),4):MNM$=RIGHT$(I$(1),2)
  1537. 37970  YRM=VAL(YRM$):MNM=VAL(MNM$)
  1538. 37980  CLOSE #2
  1539. 37990  RETURN
  1540. 38000 '
  1541. 38010 *HKIPUT:'---------- インデックスファイル書き込み
  1542. 38020  GOSUB *HKIOPN
  1543. 38030  LSET I$(1)=IYM$
  1544. 38040  LSET I$(2)=IMAK$
  1545. 38050  PUT #2,RI
  1546. 38060  CLOSE #2
  1547. 38070  RETURN
  1548. 38080 '
  1549. 38090 *HKDGET:'---------- 家計簿データ読み込み
  1550. 38100  GOSUB *HKDOPN
  1551. 38110  R=RDY
  1552. 38120  GET #1,R
  1553. 38130  DEV$=D$(1)
  1554. 38140  FOR II=1 TO 16:DYN$(II   )=MID$(D$(2),(II-1)*10+1,10):NEXT II
  1555. 38150  FOR II=1 TO  4:DRM$(II+ 0)=MID$(D$(3),(II-1)*32+1,32):NEXT II
  1556. 38160  FOR II=1 TO  4:DRM$(II+ 4)=MID$(D$(4),(II-1)*32+1,32):NEXT II
  1557. 38170  FOR II=1 TO  4:DRM$(II+ 8)=MID$(D$(5),(II-1)*32+1,32):NEXT II
  1558. 38180  FOR II=1 TO  4:DRM$(II+12)=MID$(D$(6),(II-1)*32+1,32):NEXT II
  1559. 38190  DDM$=D$(7)
  1560. 38200  GOSUB *HKDCAL
  1561. 38210  CLOSE #1
  1562. 38220  RETURN
  1563. 38230 '
  1564. 38240 *HKDCAL:'---------- 家計簿金額計算
  1565. 38250  FOR II=1 TO 15:DYN#(II)=VAL(DYN$(II)):NEXT II
  1566. 38255  IF TCALF=1 THEN TCALF=0:RETURN
  1567. 38260  DYN#(16)=0:FOR II=1 TO 3 :DYN#(16)=DYN#(16)+DYN#(II):NEXT II
  1568. 38270  DYN$(16)=RIGHT$(SPACE$(8)+STR$(DYN#(16)),8)
  1569. 38280  DYN#(18)=0:FOR II=4 TO 7 :DYN#(18)=DYN#(18)+DYN#(II):NEXT II
  1570. 38290  DYN$(18)=RIGHT$(SPACE$(8)+STR$(DYN#(18)),8)
  1571. 38300  DYN#(17)=0:FOR II=4 TO 15:DYN#(17)=DYN#(17)+DYN#(II):NEXT II
  1572. 38310  DYN$(17)=RIGHT$(SPACE$(8)+STR$(DYN#(17)),8)
  1573. 38320  RETURN
  1574. 38330 '
  1575. 38340 *ANLSGET:'---------- 分析条件ファイル読み込み
  1576. 38350  GOSUB *ANLSOPN
  1577. 38360  GET #1,1
  1578. 38370  FOR II=1 TO 8:SX$(II)=S$(II):NEXT II
  1579. 38380  CLOSE #1
  1580. 38390  SR1YR=VAL(SX$(1)):SR1MN=VAL(SX$(2))
  1581. 38400  SR2YR=VAL(SX$(3)):SR2MN=VAL(SX$(4))
  1582. 38410  RETURN
  1583. 38420 '
  1584. 38430 *ANLSPUT:'---------- 分析条件ファイル書き込み
  1585. 38440  GOSUB *ANLSOPN
  1586. 38450  FOR II=1 TO 8:LSET S$(II)=SX$(II):NEXT II
  1587. 38460  PUT #1,1
  1588. 38470  CLOSE #1
  1589. 38480  RETURN
  1590. 38490 '
  1591. 38500 *HKTGET:'---------- 年間統計ファイル読み込み
  1592. 38510  GOSUB *HKTOPN
  1593. 38520  R=RMN
  1594. 38530  GET #1,R
  1595. 38540  FOR II=1 TO 20
  1596. 38550    MX$(II)=MID$(M$,(II-1)*10+1,10)
  1597. 38560    MX#(II)=VAL(MX$(II))
  1598. 38570  NEXT II
  1599. 38580  CLOSE #1
  1600. 38590  RETURN
  1601. 38600 '
  1602. 38610 *HKTPUT:'---------- 年間統計ファイル書き込み
  1603. 38620  GOSUB *HKTOPN
  1604. 38630  R=RMN:MX$=SPACE$(200)
  1605. 38640  FOR II=1 TO 20
  1606. 38650    MX$(II)=RIGHT$(SPACE$(10)+STR$(MX#(II)),10)
  1607. 38660    MID$(MX$,(II-1)*10+1,10)=MX$(II)
  1608. 38670    LSET M$=MX$
  1609. 38680  NEXT II
  1610. 38690  PUT #1,R
  1611. 38700  CLOSE #1
  1612. 38710  RETURN
  1613. 38720 '
  1614. 38730 *HKTCAL:'---------- 年間統計ファイル演算
  1615. 38735  LXX=POS(0):LYX=CSRLIN
  1616. 38740  FOR II=1 TO 20:MX#(II)=0:NEXT II
  1617. 38750  FOR RDY=1 TO 31
  1618. 38755    LOCATE 60,23:COLOR 4
  1619. 38756    PRINT YRM$;".";MNM$;".";RIGHT$(" "+STR$(RDY),2);" 演算中";
  1620. 38760    GOSUB *HKDGET
  1621. 38770    FOR II=1 TO 18
  1622. 38780      MX#(II)=MX#(II)+DYN#(II)
  1623. 38790    NEXT II
  1624. 38800  NEXT RDY
  1625. 38810  CLOSE:LOCATE 60,23:COLOR 7:PRINT SPACE$(19);
  1626. 38820  LOCATE LXX,LYX:RETURN
  1627. 38830 '
  1628. 38840 *HKIGET:'---------- インデックスデータ読みだし
  1629. 38850  GOSUB *HKIOPN
  1630. 38860  GET #2,RI
  1631. 38870  IYM$=I$(1):IMAK$=I$(2)
  1632. 38880  YRM$=LEFT$(I$(1),4):MNM$=RIGHT$(I$(1),2)
  1633. 38890  YRM=VAL(YRM$):MNM=VAL(MNM$)
  1634. 38900  CLOSE #2
  1635. 38910  RETURN
  1636. 38920 '
  1637. 39000 *CONFIGファイルチェック'  V10 1993.02.07
  1638. 39010  OPEN "R",#1,"(1)HK.CFG"
  1639. 39020  FIELD #1,1 AS D$
  1640. 39030  IF LOF(1)=0 THEN *CFGFE1
  1641. 39035  CLOSE
  1642. 39040  OPEN "I",#1,"HK.CFG"
  1643. 39050  GOSUB *CFGREAD:PRGDRV$=CFG$:'-- PRGDRV$
  1644. 39052  GOSUB *CFGREAD:DATDRV$=CFG$:'-- DATDRV$
  1645. 39054  GOSUB *CFGREAD:RAMDRV$=CFG$:'-- RAMDRV$
  1646. 39056  TIFDRV$=PRGDRV$+"\TIFF"    :'-- TIFDRV$
  1647. 39058  GOSUB *CFGREAD:FMBDRV$=CFG$:'-- FMBDRV$
  1648. 39060  GOSUB *CFGREAD             :'-- SNDMF
  1649. 39062    IF LEFT$(CFG$,5)<>"SNDMF" THEN *CFGFE2
  1650. 39064    SNDMF=VAL(RIGHT$(CFG$,1))
  1651. 39066  GOSUB *CFGREAD:SNDDRV$=CFG$:'-- SNDDRV$
  1652. 39068  GOSUB *CFGREAD             :'-- SWAIT
  1653. 39070    IF LEFT$(CFG$,4)<>"WAIT" THEN *CFGFE2
  1654. 39072    SWAIT=VAL(RIGHT$(CFG$,LEN(CFG$)-5))
  1655. 39080  FOR II=1 TO 15
  1656. 39082    GOSUB *CFGREAD:CFI$(II)=CFG$
  1657. 39084  NEXT II
  1658. 39140  CLOSE
  1659. 39150  RETURN
  1660. 39200 *CFGFE1
  1661. 39220  LOCATE 2,23:COLOR 6:PRINT "HK.CFG ファイルが見当たりません。 家計簿を終了します。"
  1662. 39230  CLOSE:WAIT 100:SYSTEM
  1663. 39300 *CFGFE2
  1664. 39320  LOCATE 2,23:COLOR 6:PRINT "HK.CFG ファイルの内容に誤りがあります。 家計簿を終了します。"
  1665. 39330  CLOSE:WAIT 100:SYSTEM
  1666. 39400 *CFGFE3
  1667. 39420  LOCATE 2,23:COLOR 6:PRINT "HK.CFG ファイルの項目に不足があります。 家計簿を終了します。"
  1668. 39430  CLOSE:WAIT 100:SYSTEM
  1669. 39500 *CFGREAD
  1670. 39510  IF EOF(1)<>0 THEN *CFGFE3
  1671. 39520  LINE INPUT #1,CFG$
  1672. 39530  IF LEFT$(CFG$,1)="/" THEN 39510
  1673. 39540  RETURN
  1674. 39990 '
  1675. 40000 *ボタン座標:'-------------------------------------------------------
  1676. 40010 DATA 3   'SWGN        スイッチグループ数 
  1677. 40090 '/////////////////////////////
  1678. 40100 '-------------------- [G1] メインスイッチグループ
  1679. 40110 '    SWN(G),SMX,SMY,SMW
  1680. 40120 DATA     6 ,0.5,0.6, 1
  1681. 40130 '    XB1 XB2 YB1 YB2 
  1682. 40140 DATA 216,239, 56, 73  '"▲"---------- 1
  1683. 40150 DATA 240,263, 56, 73  '"▼"---------- 2
  1684. 40160 DATA 264,309, 56, 73  '"SELECT"------ 3
  1685. 40170 DATA 552,591, 42, 79  '"実行"-------- 4
  1686. 40180 DATA 592,630, 42, 79  '"取消"-------- 5
  1687. 40210 DATA 592,630,  3, 41  '"END"--------- 6
  1688. 40220 '-------------------- [G2] 分析メニュースイッチグループ
  1689. 40230 '    SWN(G),SMX,SMY,SMW
  1690. 40240 DATA    30 ,0.5,0.6,  0
  1691. 40250 '    XB1 XB2 YB1 YB2 
  1692. 40260 DATA 466,509,131,159  '"決定"-------- 1
  1693. 40270 DATA 510,551,131,159  '"取消"-------- 2
  1694. 40280 DATA 380,399,171,187  '"▲"---------- 3
  1695. 40290 DATA 400,419,171,187  '"▼"---------- 4
  1696. 40300 DATA 483,502,171,187  '"▲"---------- 5
  1697. 40310 DATA 503,522,171,187  '"▼"---------- 6
  1698. 40320 DATA 380,399,209,225  '"▲"---------- 7
  1699. 40330 DATA 400,419,209,225  '"▼"---------- 8
  1700. 40340 DATA 483,502,209,225  '"▲"---------- 9
  1701. 40350 DATA 503,522,209,225  '"▼"----------10
  1702. 40390 '
  1703. 40400 DATA 494,539,301,317  ',"出来事",0---11
  1704. 40405 DATA 310,355,247,263  ',"給 与",0---12
  1705. 40410 DATA 310,355,264,280  ',"臨 時",0---13
  1706. 40420 DATA 310,355,281,297  ',"他収入",0---14
  1707. 40430 DATA 356,401,247,263  ',"食 費",1---15
  1708. 40440 DATA 356,401,264,280  ',"生活費",1---16
  1709. 40450 DATA 356,401,281,297  ',"洗濯代",1---17
  1710. 40460 DATA 402,447,247,263  ',"光熱費",1---18
  1711. 40470 DATA 402,447,264,280  ',"被服費",0---19
  1712. 40480 DATA 402,447,281,297  ',"交際費",0---20
  1713. 40490 DATA 448,493,247,263  ',"娯楽費",0---21
  1714. 40500 DATA 448,493,264,280  ',"酒 代",0---22
  1715. 40510 DATA 448,493,281,297  ',"車維持",0---23
  1716. 40520 DATA 494,539,247,263  ',"教育費",0---24
  1717. 40530 DATA 494,539,264,280  ',"雑 費",0---25
  1718. 40540 DATA 494,539,281,297  ',"他支出",0---26
  1719. 40550 DATA 310,355,301,317  ',"全収入",2---27
  1720. 40560 DATA 356,401,301,317  ',"基支出",1---28
  1721. 40570 DATA 402,447,301,317  ',"全支出",2---29
  1722. 40580 DATA 448,493,301,317  ',"全収支",2---30
  1723. 40600 '-------------------- [G3] 確認スイッチグループ
  1724. 40610 '    SWN(G),SMX,SMY,SMW
  1725. 40620 DATA     2 ,0.8,0.8,  0
  1726. 40630 '    XB1 XB2 YB1 YB2 
  1727. 40640 DATA 552,583, 56, 73  '"OK"---------- 1
  1728. 40650 DATA 584,615, 56, 73  '"NG"---------- 2
  1729. 40690 '
  1730. 40750 '
  1731. 50000 *分析モード項目
  1732. 50010 DATA 9  '10
  1733. 50015 '    "  分析モード  ",開始,終了,項目
  1734. 50016 '       SMOPT(SMODE,  [1]  [2]  [3] ) 0:無効
  1735. 50017 '                                     1:全項目有効
  1736. 50018 '                                     2:合計項目無効
  1737. 50020 DATA "月間合計額推移",   1,  24,   1
  1738. 50030 DATA "月間合計額累積",   1,  24,   1
  1739. 50040 DATA "日別項目別変動",   1,  12,   2
  1740. 50050 DATA "月間収支推移  ",   1,  24,   0
  1741. 50060 DATA "月間日累積推移",   1,   6,   1
  1742. 50070 DATA "項目別比率分析",   1,  48,   0
  1743. 50080 DATA "エンゲル係数推移 ",   1,  18,   0
  1744. 50090 'DATA "年別動向比較  ",   1,  48,   1
  1745. 50100 DATA "月間レポート印刷 ",   1,   0,   0
  1746. 50110 DATA "総計演算処理  ",   0,   0,   0
  1747. 50190 '
  1748. 51300 *項目データ:'        SITM
  1749. 51400 DATA "出来事",0'----- 1
  1750. 51410 DATA "給 与",4'----- 2
  1751. 51420 DATA "臨 時",4'----- 3
  1752. 51430 DATA "他収入",4'----- 4
  1753. 51440 DATA "食 費",1'----- 5
  1754. 51450 DATA "生活費",1'----- 6
  1755. 51460 DATA "洗濯代",1'----- 7
  1756. 51470 DATA "光熱費",1'----- 8
  1757. 51480 DATA "被服費",1'----- 9
  1758. 51490 DATA "交際費",1'-----10
  1759. 51500 DATA "娯楽費",1'-----11
  1760. 51510 DATA "酒 代",1'-----12
  1761. 51520 DATA "車維持",1'-----13
  1762. 51530 DATA "教育費",1'-----14
  1763. 51540 DATA "雑 費",1'-----15
  1764. 51550 DATA "他支出",2'-----16
  1765. 51560 DATA "全収入",2'-----17
  1766. 51570 DATA "基支出",2'-----18
  1767. 51580 DATA "全支出",2'-----19
  1768. 51590 DATA "全収支",2'-----20
  1769. 60000 '
  1770. 60010 ' 座標確認 DEBUG ROUTINE
  1771. 60020 '
  1772. 60030 MOUSE 0:MOUSE 1,0,0,1
  1773. 60040  IF MOUSE(2,1)<>0 THEN STOP
  1774. 60050  IF MOUSE(2,0)=0 THEN 60050
  1775. 60060  X_M=MOUSE(4,0):Y_M=MOUSE(5,0):LX=INT(X_M/8):LY=INT(Y_M/19)
  1776. 60070  LOCATE 2,24:COLOR 7:PRINT "X=";X_M,"Y=";Y_M,"LX=";LX,"LY=";LY;
  1777. 60080  GOTO 60040
  1778. 61000 ' 
  1779. 61100 *分析条件TESTファイル作成
  1780. 61110  DATDRV$="A:\"
  1781. 61120  SX$(1)="1992"
  1782. 61130  SX$(2)="01"
  1783. 61140  SX$(3)="1992"
  1784. 61150  SX$(4)="07"
  1785. 61160  SX$(5)="012345678901234567890123"
  1786. 61165  SX$(5)="0123456789小村利明890123"
  1787. 61170  SX$(6)="00000000"
  1788. 61180  SX$(7)="99999999"
  1789. 61190  SX$(8)="01"
  1790. 61200  GOSUB *ANLSPUT
  1791. 61210 STOP
  1792. 62000 LOCATE 2,6:COLOR 0'
  1793. 62010 PRINT "1992.02.14(日) 給  与 00000000 ";STRING$(32,"A");
  1794. 62100 LOCATE 2,7:COLOR 0
  1795. 62110 PRINT "1992.02.14 ";STRING$(64,"A");
  1796. 62120 STOP
  1797.